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

Convert json array to list of json(raw) strings

我有一些 json 数据是这样的:

[{"id":"someid","name":"some name"}, {"id":"some other id", "name":"a name"}]

我想获取上述数组中的 json 个对象作为字符串列表,如

(每个字符串都是json字符串形式的对象,(List<String>))

(为简单起见

 [ {"id":"someid","name":"some name"},{"id":"some other id", "name":"a name"} 

我尝试使用 jackson 的 TypeReference>,但它会导致像 id、someid 这样的组成部分进入列表元素,而不是使每个 json 对象成为字符串元素。

我也试过使用jackson TypeReference>,这次我得到了正确的对象数量,但是所有的双引号都没有了,':'被转换为'=',所以它转换为java 对象不是 json 原始字符串。

我越来越像 [{id=someid,name=somename},{id=some other id, name=a name}]

我很想知道如何使用 Jackson 库执行此操作。

如有任何帮助,我们将不胜感激。

使用org.json.simple.parser.JSONParser将JsonArray字符串解析为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(raw) 字符串。希望对你有所帮助

我能够使用 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));
}

不过,我仍然很想知道如何单独使用 Jackson 库来做到这一点。

jsonArray.getJSONObject() 方法 return 是 JSONObject 的一个实例。因此,您需要将 return 值更改为 List<JSONObject> 或在您的 for 循环中,将 jsonArray.getJSONObject(i).toString() 调用为 return a List<String>