我有一些像这样的json数据:
[{"id":"someid","name":"some name"}, {"id":"some other id", "name":"a name"}]
我想在上面的数组aslist中获取json对象,如
(每个字符串都是字符串形式的json对象,(List<String>)
)
(为简单起见
[ {"id":"someid","name":"some name"},{"id":"some other id", "name":"a name"}
我尝试使用杰克逊的TypeReference&gt;但是它导致了像id,someid这样的成分部分进入list元素而不是使每个json对象成为一个字符串元素。
我也尝试过使用jackson TypeReference&gt;,这次我正确地得到了对象的数量,但所有的双引号都没了,&#39;:&#39;转换为&#39; =&#39;,因此它转换为java对象而不是json原始字符串。
我变得像[{id = someid,name = somename},{id = some other id,name = a name}]
我有兴趣知道如何使用杰克逊图书馆这样做。
任何帮助都将不胜感激。
答案 0 :(得分:1)
使用org.json.simple.parser.JSONParser将JsonArray String解析为JsonArray对象。
JSONParser parser = new JSONParser();
JSONArray arr = (JSONArray) parser.parse(jsonArray);
List<String> list = new ArrayList<String>();
for (Object jsonObject : arr) {
System.out.println("jsonObject>>"+jsonObject);
list.add(jsonObject.toString());
}
这里准备好的列表包含你想要的json(原始)字符串。希望它能帮到你
答案 1 :(得分:0)
我能够使用json库中的JSONArray实现所需的结果。对于任何一个人来说,我都会发布这个问题。
JSONArray jsonArray = new JSONArray(jsonString);
List<String> list = new ArrayList<String());
for(int i = 0 ; i < jsonArray.length();i++){
list.add(jsonArray.getJSONObject(i));
}
然而,我仍然有兴趣知道如何单独使用杰克逊图书馆这样做。
答案 2 :(得分:0)
jsonArray.getJSONObject()方法返回JSONObject的一个实例。因此,您需要将返回值更改为List<JSONObject>
或在for循环中,调用jsonArray.getJSONObject(i).toString()以返回List<String>