【问题标题】:Extracting array from response string从响应字符串中提取数组
【发布时间】:2013-08-15 03:16:21
【问题描述】:

我从节点收到如下响应,如何将其提取为 java 中的数组

[
   {
      "userName":"Steve",
      "date":"Tue Aug 13 18:44:23 GMT+05:30 2013",
      "message":"Good morning sir."
   }
]

注意:终于做到了,抱歉浪费你们时间,请参阅我的最后评论:)

我正在向服务器写入节点发出 http 请求,并且在服务器中我将对象数组 [{}, {}, ...] 发送回 java, 现在来到 java,我将使用 InputStream 读取响应并构造结果字符串。

我得到了上面指定的字符串,我想要的是如何将字符串转换为数组,以便我可以循环访问数组中的对象

HttpGet httpget = new HttpGet('some uri');
HttpEntity httpentity = httpclient.execute(httpget).getEntity();

private void renderResponseAndQueueResults(HttpEntity httpentity) {
                try {
                    InputStream is = httpentity.getContent();
                    String result = convertStreamToString(is);
                    is.close();
                    appendResultToMap(result);
                } catch (IllegalStateException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }

            private String convertStreamToString(InputStream is) {
                BufferedReader reader = new BufferedReader(new InputStreamReader(is));
                StringBuilder sb = new StringBuilder();

                String line = null;

                try {
                    while( (line = reader.readLine()) != null){
                        sb.append(line + "\n");
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                } finally{
                    try{
                        is.close();
                    }catch (IOException e){
                        e.printStackTrace();
                    }
                }
                return sb.toString();
            }

convertStreamToString 的返回是一个类似于

的字符串
[
   {
      "userName":"Steve",
      "date":"Tue Aug 13 18:44:23 GMT+05:30 2013",
      "message":"Good morning sir."
   }
]

现在我该如何循环遍历它

【问题讨论】:

  • JSONArray arr = new JSONArray(result);结果是响应字符串;
  • 你可能考虑过使用json库,你做了什么?
  • 我真的不擅长java对不起,我刚刚得到了指定如何转换为数组的结果
  • 好的,如果它是在 js 中,我希望它像一个对象数组一样,我可以循环访问每个对象并处理其他查询
  • 您的问题没有说明您为尝试解决问题所做的工作;它目前读起来像是对代码的请求。请分享您尝试的实施,并说明它如何无法满足您的要求。

标签: java arrays json string type-conversion


【解决方案1】:

您需要参考 JSON 库 API:http://www.json.org/javadoc/org/json/JSONArray.html

这可能是你想要的:

//process the JSON array parsed out from the source string
for (int i = 0; i < arr .length(); i++) 
{
    //get each JSON object of the array
    JSONObject iObj = arr.getJSONObject(i);

    //access the content of the JSON object, like print it
    System.out.println(iObj.getString("userName"));
}

【讨论】:

  • 所以我需要喜欢 String s = convertStreamToString() JSONArray arr = new JSONArray(s);
猜你喜欢
  • 2018-06-11
  • 2014-08-30
  • 1970-01-01
  • 1970-01-01
  • 2021-04-16
  • 1970-01-01
  • 2018-06-22
  • 1970-01-01
  • 2020-01-03
相关资源
最近更新 更多