首页 > 解决方案 > java中JSONObject里面的JSONobject

问题描述

我有以下请求映射:

@RequestMapping(value = "/reCalculated", method = RequestMethod.POST)
public @ResponseBody void reCalculated(JSONObject obj) {

    obj.
}

然后我有传入的json

{"params":{"date_a":"2017-05-01","date_b":"2017-05-02"}}

但是在java中,obj.只给了我选项toString()toJSONString() 同时所有的教程,很少有线程清楚地告诉我我应该能够做到obj.getJSONObject("params")这是为什么?如何访问我的参数?

<dependency>
        <groupId>com.googlecode.json-simple</groupId>
        <artifactId>json-simple</artifactId>
        <version>1.1.1</version>
 </dependency>

是依赖。

标签: javajsonspring-boot

解决方案


json-simple库有方法get(String name),需要外部类型转换,如下所示

String name = (String) jsonObject.get("name");
JSONArray msg = (JSONArray) jsonObject.get("messages");
long age = (Long) jsonObject.get("age");

但是gson在这里有预定义的方法

public JsonObject getAsJsonObject(String memberName)
public JsonArray getAsJsonArray(String memberName)

Maven依赖

<!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.3</version>
</dependency>

推荐阅读