gpt4 book ai didi

java - 无法解析二维 json 数组并显示其内容

转载 作者:搜寻专家 更新时间:2023-11-01 08:21:03 24 4
gpt4 key购买 nike

正在从 API 获取二维数组,正在解析响应。但是我无法获得这些值。

这是我得到响应的方式,

DefaultHttpClient httpclient = new DefaultHttpClient(new BasicHttpParams());
String api_uri = "http://192.168.0.106/api/something/";
HttpGet httpget = new HttpGet(api_uri);

httpget.setHeader("Content-type", "application/json");

InputStream inputStream = null;
String result = null;

try {
HttpResponse response = httpclient.execute(httpget);
HttpEntity entity = response.getEntity();

inputStream = entity.getContent();
// json is UTF-8 by default
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"), 8);
StringBuilder sb = new StringBuilder();

String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
result = sb.toString();
Log.e("rAct", result);
} catch (Exception e) {
// Oops
Log.e("rActEr", e.toString());
} finally {
try {
if (inputStream != null) inputStream.close();
} catch (Exception squish) {}
}

结果字符串如下,

[
[
{
"id": 138,
"name": "asdasd",
"person_image": "http://something.in:9090/photos/14/1575.jpg",
"person_description": "bla bla blaa",
"bla_id": 1,
"blabal_id": 2,
"other_id": 7,
"category": "asd"
}
],
[
{
"id": 257,
"name": "asdasd",
"person_image": "http://something.in/asd.jpg",
"person_description": "asasdsad",
"bla_id": 1,
"blabal_id": 2,
"other_id": 7,
"category": "ASSSD"
}
]
]

所以现在我正在尝试读取数据,

try {
jsonarray = new JSONArray(result);
for (int i = 0; i < jsonarray.length(); i++) {
jsonobject = jsonarray.getJSONObject(i);
Log.e("testt", jsonobject.toString());
...
...
}
}catch....

我无法从那个 jsonobject 得到任何东西如何从结果中获取nameperson_imageperson_description 数据。我试图让它们像 jsonobject.optString("name") 一样,但没有任何返回。

使用一维数组,我得到了响应,我可以按照上面相同的方式读取数据。

我需要修改什么才能读取到我需要的数据?

最佳答案

因为你有数组数组,所以尝试读取 json 数组 而不是外部数组内部的 object:

try {
jsonarray = new JSONArray(result);
for (int i = 0; i < jsonarray.length(); i++) {
jsonarrayInner = jsonarray.getJSONArray(i);
//you can do one more loop here
for (int i = 0; i < jsonarrayInner.length(); i++) {
jsonobject = jsonarrayInner.getJSONObject(i);
Log.e("testt", jsonobject.toString());
}
...
...
}
}catch....

关于java - 无法解析二维 json 数组并显示其内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51037061/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com