我有一个像这样的 JSON 结果:
jArr:
[
["53","54","55","62","63","64"],
["1133 Budapest Dráva utca 10.","1106 Budapest Örs vezér tere 25.","1106 Budapest Örs vezér tere 25.","1106 Budapest Örs vezér tere 25.","1133 Budapest Dráva utca 10.","1106 Budapest Örs vezér tere 25."],
[
["2016-08-18","15:00:00"],
["2016-04-08","13:00:00"],
["2016-04-08","14:00:00"],
["2016-04-08","10:00:00"],
["2016-04-08","13:00:00"],
["2016-04-08","15:00:00"]
]
]
我想在java中将它处理成3个数组。
我想要将第一个 []
(如 53、54...)放入 int[] id
中。
第二个 []
是一个 String[]
数组,第三个也是一个 String。
3个数组大小相同,但JSON结果可以多一些,也可以少一些。
Java:
try {
post.setEntity(new UrlEncodedFormEntity(dataToSend));
HttpResponse httpResponse = client.execute(post);
HttpEntity entity = httpResponse.getEntity();
String result = EntityUtils.toString(entity);
JSONArray jArr = new JSONArray(result);
int size = 30;
String[] dates = new String[size];
String[] places = new String[size];
int[] ids = new int[size];
if (jArr.length() != 0) {
for (int i = 0; i < jArr.length(); i++){
//I think it should be processed here
ids[i] = jArr[0][i].getInt(i); //or something like that, but it doesn't work
places[i] = jArr[1][i].getSting();
dates[i] = jArr[2][i].getSting();
}
}
我应该如何将该 JSON 处理到这些数组中?
最佳答案
JSONArray.filters.getJSONArray() 将返回一个 JSONArray
示例:
JSONArray jArr = new JSONArray(result);
JSONArray j1 = jArr.getJSONArray(0); // 0th index.
这是您的代码的简化答案:
public class TestJSON {
public static void main(String[] args) throws JSONException {
String result = "[\n"
+ " [\"53\",\"54\",\"55\",\"62\",\"63\",\"64\"],\n"
+ " [\"1133 Budapest Dráva utca 10.\",\"1106 Budapest Örs vezér tere 25.\",\"1106 Budapest Örs vezér tere 25.\",\"1106 Budapest Örs vezér tere 25.\",\"1133 Budapest Dráva utca 10.\",\"1106 Budapest Örs vezér tere 25.\"],\n"
+ " [\n"
+ " [\"2016-08-18\",\"15:00:00\"],\n"
+ " [\"2016-04-08\",\"13:00:00\"],\n"
+ " [\"2016-04-08\",\"14:00:00\"],\n"
+ " [\"2016-04-08\",\"10:00:00\"],\n"
+ " [\"2016-04-08\",\"13:00:00\"],\n"
+ " [\"2016-04-08\",\"15:00:00\"]\n"
+ " ]\n"
+ "]";
JSONArray jArr = new JSONArray(result);
if (jArr.length() != 0) {
List ids = fillArray(jArr.getJSONArray(0));
List places = fillArray(jArr.getJSONArray(1));
List dates = fillArray(jArr.getJSONArray(2));
System.out.println(ids);
System.out.println(places);
System.out.println(dates);
}
}
private static List fillArray(JSONArray jsonArray) throws JSONException {
List array = new ArrayList();
for (int i = 0; i < jsonArray.length(); i++) {
array.add(jsonArray.get(i));
}
return array;
}
}
关于java - 如何将多维json处理成3个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36116252/