将json数组转换为json(原始)字符串列表

时间:2015-07-08 09:00:00

标签: java json jackson

我有一些像这样的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}]

我有兴趣知道如何使用杰克逊图书馆这样做。

任何帮助都将不胜感激。

3 个答案:

答案 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>

相关问题