Java中如何对Json格式的数据进行处理呢?
下文笔者讲述java代码对json数据的处理方法分享,如下所示
将json字符串
3.json字符串
4.不同实体类之间
json数据处理的实现思路:
1.引入相应的依赖报 fastjson
2.使用 fastjson中相应的方法 即可实现json的解析和反解析操作
例
引入依赖包
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.36</version>
</dependency>
将一个实体类变成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("maomao", 30, "123 Main St.");
// 将 Person 对象转换为 JSON 字符串
String jsonString = JSON.toJSONString(person);
System.out.println(jsonString);
}
输出信息
{"address":"123 Main St.","age":30,"name":"maomao"}
将json字符串
转化成对应java实体类
public static void main(String[] args) {
String jsonString = "{\"name\":\"maomao\",\"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());
}
================================
String jsonString = "{\"name\":\"maomao\",\"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\":\"maomao\",\"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("maomao");
source.setAge(30);
String jsonString = JSON.toJSONString(source);
//将JSON字符串转换为TargetEntity对象:
TargetEntity target = JSON.parseObject(jsonString, TargetEntity.class);
5.后端接收前端json参数
后端使用@RequestBody 接收, 由于驼峰命名的特殊,实体类可能接收不到传过来的参数,
此时需要再实体类上加上
@JsonProperty(value = "cityCode")//cityCode和请求报文中的字段保持一致
private String cityCode;
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


