繁体   English   中英

将 JSONObject 转换为列表<JSONObject>或要列出的字符串<JSONObject>

[英]Convert JSONObject to List<JSONObject> or a String to List<JSONObject>

我从我的 Java 应用程序提交了一个查询,它在 Elasticsearch 服务器上运行时以字符串的形式返回结果。 我想要结果作为JSONObject对象的列表。 我可以使用JSONObject jsonResponse = new JSONObject(responseString)将字符串转换为JSONObject

有什么方法可以以List<JSONObject>的形式获取它?

您可以使用JSONArray代替 JSONObject 。 如果您确实需要将其转换为列表,您可以执行以下操作:

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());
}

你的问题有答案: https : //stackoverflow.com/a/17037364/1979882

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());
   } 
} 

这个方法真的很简单,也很管用

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());
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM