依赖包
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.36</version>
</dependency>
1.将一个实体类变成JSON字符串
//实体类
public class Person {
private String name;
private int age;
private String address;
// 构造函数、getter 和 setter 方法
public Person(String name, int age, String address) {
this.name = name;
this.age = age;
this.address = address;
}
// getter 和 setter 方法...
}
//用例
public static void main(String[] args) {
Person person = new Person("John", 30, "123 Main St.");
// 将 Person 对象转换为 JSON 字符串
String jsonString = JSON.toJSONString(person);
System.out.println(jsonString);
}
结果
{"address":"123 Main St.","age":30,"name":"John"}
2.将json字符串 转化成对应的java实体类
public static void main(String[] args) {
String jsonString = "{\"name\":\"John\",\"age\":30,\"address\":\"123 Main St.\"}";
// 将 JSON 字符串转换为 Person 对象
Person person = JSON.parseObject(jsonString, Person.class);
System.out.println("Name: " + person.getName());
System.out.println("Age: " + person.getAge());
System.out.println("Address: " + person.getAddress());
}
如果你有一个更复杂的 JSON 字符串,可以先将其转换为 JSONObject
,然后再逐个解析出各个字段的值。例如:
String jsonString = "{\"name\":\"John\",\"age\":30,\"address\":{\"street\":\"123 Main St.\",\"city\":\"New York\"}}";
JSONObject jsonObject = JSON.parseObject(jsonString);
String name = jsonObject.getString("name");
int age = jsonObject.getIntValue("age");
JSONObject addressObject = jsonObject.getJSONObject("address");
String street = addressObject.getString("street");
String city = addressObject.getString("city");
3.json字符串,转化为对应实体类的list
public static void main(String[] args) {
String jsonString = "[{\"name\":\"John\",\"age\":30,\"address\":\"123 Main St.\"},{\"name\":\"Jane\",\"age\":25,\"address\":\"456 Oak Ave.\"}]";
// 将 JSON 字符串转换为 Person 对象列表
List<Person> personList = JSON.parseObject(jsonString, new TypeReference<List<Person>>() {});
for (Person person : personList) {
System.out.println("Name: " + person.getName());
System.out.println("Age: " + person.getAge());
System.out.println("Address: " + person.getAddress());
System.out.println();
}
}
4.不同实体类之间,通过json实现相同属性的数据传递
public class SourceEntity {
private String name;
private int age;
// Getters and setters
}
public class TargetEntity {
private String name;
private int age;
private String extraInfo; // 多出的属性
private boolean active; // 多出的属性
// Getters and setters
}
//将SourceEntity转换为JSON字符串:
SourceEntity source = new SourceEntity();
source.setName("John");
source.setAge(30);
String jsonString = JSON.toJSONString(source);
//将JSON字符串转换为TargetEntity对象:
TargetEntity target = JSON.parseObject(jsonString, TargetEntity.class);
5.后端接收前端 json参数
后端使用@RequestBody 接收, 由于驼峰命名的特殊,实体类可能接收不到传过来的参数,
此时需要再实体类上加上
@JsonProperty(value = "RiskCode")//RiskCode和请求报文中的字段保持一致
private String RiskCode;