【发布时间】: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