我有以下请求映射:
@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>
是依赖项。
答案 0 :(得分:1)
json-simple
库具有方法get(String name)
,并且需要如下所述的外部类型转换
String name = (String) jsonObject.get("name");
JSONArray msg = (JSONArray) jsonObject.get("messages");
long age = (Long) jsonObject.get("age");
但是gson
库具有预定义的方法here
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>
答案 1 :(得分:1)
您可以从参数中获取JSONString
Gson gson = (new GsonBuilder()).create();
jsonString = obj.get("params").getAsString();
JsonObject param= gson.fromJson(jsonString, JsonObject.class);
正如Deadpool
所说,您想使用gson
,但添加了json-simple
依赖性。