java json解析
时间: 2023-06-22 19:21:55 浏览: 70
Java中解析JSON格式的数据可以使用Java自带的JSON库或第三方的JSON库,比如Google的Gson、阿里的FastJson等。下面以Java自带的JSON库为例,介绍一下如何解析JSON数据。
首先,需要将JSON格式的字符串解析为JSON对象或JSON数组。可以通过以下代码实现:
```
import org.json.JSONArray;
import org.json.JSONObject;
String jsonStr = "{\"name\":\"John\", \"age\":30, \"car\":null, \"hobbies\":[\"reading\", \"sports\"]}";
// 解析JSON对象
JSONObject jsonObj = new JSONObject(jsonStr);
// 解析JSON数组
JSONArray jsonArray = jsonObj.getJSONArray("hobbies");
```
上面的代码中,首先定义了一个JSON格式的字符串。然后使用JSONObject类将字符串解析为JSON对象,使用getJSONArray方法获取JSON数组。如果要获取JSON对象中的某个属性值,可以使用get方法,如下所示:
```
String name = jsonObj.getString("name");
int age = jsonObj.getInt("age");
```
如果JSON格式的字符串中包含嵌套的JSON对象或JSON数组,可以通过递归方式解析。例如下面的代码:
```
String jsonStr = "{\"name\":\"John\", \"age\":30, \"car\":{\"make\":\"Toyota\", \"model\":\"Camry\"}, \"hobbies\":[\"reading\", {\"type\":\"sports\", \"name\":\"football\"}]}";
// 解析嵌套的JSON对象
JSONObject jsonObj = new JSONObject(jsonStr);
JSONObject carObj = jsonObj.getJSONObject("car");
String make = carObj.getString("make");
// 解析嵌套的JSON数组
JSONArray jsonArray = jsonObj.getJSONArray("hobbies");
JSONObject hobbyObj = jsonArray.getJSONObject(1);
String type = hobbyObj.getString("type");
```
上面的代码中,包含一个嵌套的JSON对象和一个嵌套的JSON数组。使用getJSONObject方法获取嵌套的JSON对象,使用getJSONArray方法获取嵌套的JSON数组。
阅读全文