将JSONObject转换为List <jsonobject>或将String转换为List <jsonobject>

时间:2015-07-27 09:29:24

标签: jsonobject

我有一个查询,在elasticsearch服务器上运行时会以字符串的形式返回结果。我希望结果作为JSONObjects的列表。我可以使用JSONObject将字符串转换为JSONObject jsonResponse = new JSONObject(responseString);

我有什么方法可以以List的形式获得这个吗? 我正在使用Java。

3 个答案:

答案 0 :(得分:3)

您可以使用JSONArray而不是使用JSONObject。如果你真的需要将它转换为List,你可能会做类似的事情:

List<JSONObject> list = new ArrayList<JSONObject>();
try {
    int i;
    JSONArray array = new JSONArray(string);
    for (i = 0; i < array.length(); i++)
        list.add(array.getJSONObject(i);
} catch (JSONException e) {
    System.out.println(e.getMessage());
}

答案 1 :(得分:0)

您的问题有答案: largest_substring_algo1 from here

ArrayList<String> listdata = new ArrayList<String>();     
JSONArray jArray = (JSONArray)jsonObject; 
if (jArray != null) { 
   for (int i=0;i<jArray.length();i++){ 
    listdata.add(jArray.get(i).toString());
   } 
} 

答案 2 :(得分:0)

这种方法非常简单,也可以使用

try {

    JSONObject jsonObject = new JSONObject(THESTRINGHERE);
    String[] names = JSONObject.getNames(jsonObject);
    JSONArray jsonArray = jsonObject.toJSONArray(new JSONArray(names));

    ArrayList<String> listdata = new ArrayList<String>();     
    JSONArray jArray = (JSONArray)jsonArray; 
    if (jArray != null) { 
       for (int i=0;i<jArray.length();i++){ 
           listdata.add(jArray.get(i).toString());
       } 
    } 
    //  System.out.println(listdata);


} catch (Exception e) {
    System.out.println(e.getMessage());
}