当前位置: 首页 > 知识库问答 >
问题:

创建JSONObject:Spring boot

何涵衍
2023-03-14

我想创建一个JSONObject

@RequestMapping(value = "/test", method = RequestMethod.GET)
@ResponseBody 
  public JSONObject  Test() {

 JSONObject test = new JSONObject();
 test.put("name","caroline");
 return test;
}

结果给了我:

{"map":{"name":"caroline"}} 

但我一直在等这样的事情:

{"name":"caroline"}

我不知道问题出在哪里,我只是按照这个例子

共有3个答案

公子昂
2023-03-14

你可以试试这个

1-在pom中添加此依赖关系。xml

<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.11.1</version>
</dependency>

2-我有这个班例如

public class Car {

private String color;
private String type;

// standard getters setters

}

2-Java对象到JSON

ObjectMapper objectMapper = new ObjectMapper();
Car car = new Car("yellow", "renault");
objectMapper.writeValue(new File("target/car.json"), car);

必须像它一样的结果:

{"color":"yellow","type":"renault"}

3-JSON到Java对象

String json = "{ \"color\" : \"Black\", \"type\" : \"BMW\" }";
Car car = objectMapper.readValue(json, Car.class);
夏何平
2023-03-14

我希望你说的是组织。json包

如果您真的想使用JSONObject创建JSON,那么下面的代码可以工作。只是可以将返回类型从JSONObject更改为String。

@RequestMapping(value = "/test", method = RequestMethod.GET)
@ResponseBody
public String  Test() {
    JSONObject test = new JSONObject();
    test.put("name","caroline");
    return test.toString();
}
慕容成和
2023-03-14

我在一个示例spring boot项目中尝试了您的代码,但发现了错误,

No converter for [class org.json.JSONObject]

这里清楚地解释了此错误的原因。为了重申这个答案,JSONObject类没有getter,因此出现了错误。默认情况下,spring boot starter web依赖项具有Jackson web支持,可以将任何POJO类转换为JSON对象。因此,正如@süleyman can的答案所示,使用POJO是正确的处理方法。

万一,您不能使用POJO类,因为响应中的字段对于每个请求都不同。例如,您必须发送

{"a": "b"}

对于一个响应和

{"c": "d"}

对于另一个响应,您可以始终使用Map

@RequestMapping(value = "/test", method = RequestMethod.GET)
@ResponseBody
public Map<String, String> test() {
  Map<String, String> test = new HashMap<>();
  test.put("name","caroline");
  return test;
}

反应会是这样的,

json prettyprint-override">{"name":"caroline"}                                                                                                                      
 类似资料:
  • mkdir 可以创建新的目录,touch 可以创建空白的文件。 先进入到某个地方,比如当前登录用户的桌面上: cd ~ mkdir mkdir(make directory),可以创建新的目录。 mkdir 要创建的目录 练习:创建目录 创建一个名字是 awesome-project 的目录,执行: mkdir awesome-project 查看一下: ls 你会看到创建的目录 awes

  • 说明 支付宝境外到店支付-创建商户二维码 官方文档:https://global.alipay.com/service/merchant_QR_Code/15 类 请求参数类 请求参数 类名:\Yurun\PaySDK\AlipayCrossBorder\InStore\CreateMerchantQR\Request 属性 名称 类型 说明 $service string 接口名称 $times

  • 请求地址 https://api.es.xiaojukeji.com/river/Approval/create 返回数据格式 JSON 请求类型 POST 请求参数 参数名称 数据类型 必选 说明 member_type int no 唯一标识类型(0-手机号,1-工号,2-邮箱,默认为0) client_id string yes 申请应用时分配的AppKey access_token str

  • 创建操作符 这些运算符几乎允许你基于任何东西来创建一个 observable 。从一般用例到特殊用例,你都可以做到, 并且鼓励将一切转换成流。 内容 create empty from :star: fromEvent fromPromise :star: interval of :star: range throw timer :star: - 常用 其他资源 从零开始创建 Observable

  • 下面包含一个本机查询,我需要在其中设置一个参数,但是由于没有设置参数,所以该查询是错误的 所以返回所有行。怎么了

  • 目录 可以创建多个 store 吗,应该这么做吗?能在组件中直接引用 store 并使用吗? 在 store enhancer 中可以存在多个 middleware 链吗? 在 middleware 方法中,next 和 dispatch 之间区别是什么? 怎样只订阅 state 的一部分变更?如何将分发的 action 作为订阅的一部分? 创建 Store 可以创建多个 store 吗,应该这么

  • 根据输入的不同,plot函数有不同的窗体。如果y是向量的形式,plot(y)则在y对应的轴上作出一个分段线状图。如果指定要求含两个向量时,则plot(x,y)作出一个y相对于x的图表。 例如:下面这些语句了用colon(冒号)算子来创建一个定义值取从0到2的向量x,计算出这些值的正弦函数值,然后画出结果。 x = 0:pi/100:2*pi; y = sin(x); plot(x,y) 现在给轴

  • 本文向大家介绍neo4j 创建,包括了neo4j 创建的使用技巧和注意事项,需要的朋友参考一下 示例 创建一个节点 建立关系 查询模板 在浏览器GUI(默认值:http:// localhost:7474 / browser /)中本地运行neo4j,可以运行以下命令来获取查询选项板。 :play query template 这可以帮助您开始通过键入查询来创建和合并节点和关系。