java获取json里数组中的数组
时间: 2024-01-26 12:02:25 浏览: 215
java解析json信息
获取 JSON 中的嵌套数组需要使用 JSONArray 和 JSONObject 对象来解析。假设我们有以下 JSON 字符串:
```
{
"name": "John",
"age": 30,
"addresses": [
{
"street": "123 Main St",
"city": "New York",
"phones": [
"555-1234",
"555-5678"
]
},
{
"street": "456 Park Ave",
"city": "San Francisco",
"phones": [
"555-4321",
"555-8765"
]
}
]
}
```
我们可以使用以下方法来获取数组中的数组:
```java
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
public class JsonArrayExample {
public static void main(String[] args) {
String jsonString = "{\n" +
" \"name\": \"John\",\n" +
" \"age\": 30,\n" +
" \"addresses\": [\n" +
" {\n" +
" \"street\": \"123 Main St\",\n" +
" \"city\": \"New York\",\n" +
" \"phones\": [\n" +
" \"555-1234\",\n" +
" \"555-5678\"\n" +
" ]\n" +
" },\n" +
" {\n" +
" \"street\": \"456 Park Ave\",\n" +
" \"city\": \"San Francisco\",\n" +
" \"phones\": [\n" +
" \"555-4321\",\n" +
" \"555-8765\"\n" +
" ]\n" +
" }\n" +
" ]\n" +
"}";
try {
JSONObject jsonObject = new JSONObject(jsonString);
JSONArray addresses = jsonObject.getJSONArray("addresses");
for (int i = 0; i < addresses.length(); i++) {
JSONObject address = addresses.getJSONObject(i);
JSONArray phones = address.getJSONArray("phones");
for (int j = 0; j < phones.length(); j++) {
String phone = phones.getString(j);
System.out.println(phone);
}
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}
```
输出结果:
```
555-1234
555-5678
555-4321
555-8765
```
在代码中,我们首先将 JSON 字符串转换为 JSONObject 对象,然后使用 getJSONArray 方法获取到地址数组。接着我们遍历地址数组,使用 getJSONObject 方法获取地址对象,然后使用 getJSONArray 方法获取电话号码数组。我们再次遍历电话号码数组,使用 getString 方法获取电话号码。最后我们将电话号码打印出来。
阅读全文