调用api使用fastjson转成java实体类
时间: 2023-07-16 22:15:28 浏览: 48
使用fastjson将json转换为Java实体类的步骤如下:
1. 导入fastjson的依赖包。
```xml
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.60</version>
</dependency>
```
2. 定义Java实体类,属性需要与json中的key相同。
```java
public class User {
private String name;
private int age;
// getter和setter方法省略
}
```
3. 调用fastjson的API将json字符串转换为Java实体类。
```java
String jsonStr = "{\"name\":\"张三\",\"age\":20}";
User user = JSON.parseObject(jsonStr, User.class);
```
其中,JSON.parseObject()方法用于将json字符串转换为Java实体类,第一个参数为json字符串,第二个参数为Java实体类的Class对象。
4. 如果json字符串中有嵌套的对象或数组,需要在Java实体类中定义相应的嵌套对象或集合类型属性,并进行递归转换。
例如,如果json字符串中包含一个嵌套的地址对象,可以在User类中定义一个Address类,并在User类中增加一个Address类型的属性:
```java
public class Address {
private String province;
private String city;
private String district;
// getter和setter方法省略
}
public class User {
private String name;
private int age;
private Address address;
// getter和setter方法省略
}
```
然后可以按照如下方式进行转换:
```java
String jsonStr = "{\"name\":\"张三\",\"age\":20,\"address\":{\"province\":\"江苏\",\"city\":\"南京\",\"district\":\"鼓楼区\"}}";
User user = JSON.parseObject(jsonStr, User.class);
```
如果json字符串中包含一个数组,可以在User类中定义一个List类型的属性,并在User类中增加一个getter和setter方法:
```java
public class User {
private String name;
private int age;
private List<String> hobbies;
// getter和setter方法省略
}
```
然后可以按照如下方式进行转换:
```java
String jsonStr = "{\"name\":\"张三\",\"age\":20,\"hobbies\":[\"篮球\",\"足球\",\"游泳\"]}";
User user = JSON.parseObject(jsonStr, User.class);
```
以上就是使用fastjson将json字符串转换为Java实体类的方法。