FastJSON - POJO를 JSON으로/에서 변환
7952 단어 programmingjavafastjson
이 라이브러리가 Java 개체를 JSON으로/에서 쉽게 변환하는 API를 제공하는 방법을 살펴보기 위해 예제로 바로 들어가 보겠습니다.
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>fast-json-demo</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>2.0.7</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.24</version>
</dependency>
</dependencies>
</project>
JSON.toJSONString() 메서드는 Employee 객체를 JSON 문자열로 직렬화하는 데 도움이 됩니다.
Employee.java
import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
@Data
public class Employee {
@JSONField(name = "EmployeeId")
private Integer id;
@JSONField(name = "EmployeeName")
private String name;
@JSONField(name = "EmployeeLocation")
private String location;
@JSONField(name = "EmployeeSalary")
private Double salary;
public Employee(Integer id, String name, String location, Double salary) {
this.id = id;
this.name = name;
this.location = location;
this.salary = salary;
}
}
메인.자바
import com.alibaba.fastjson2.JSON;
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Employee> employeeList = new ArrayList<>();
employeeList.add(new Employee(1, "Stephen Hawking", "UK", 1000.00));
employeeList.add(new Employee(2, "Albert Einstein", "Germany", 2000.00));
// Convert Employee object to JSON
String jsonString = JSON.toJSONString(employeeList);
System.out.println(jsonString);
}
}
산출:
ordinal = <nth order>
에서 @JSONField
로 전달하기만 하면 됩니다. @JSONField(name = "EmployeeLocation", ordinal = 4)
private String location;
@JSONField(name = "EmployeeSalary", ordinal = 3)
private Double Salary;
이전 출력을 이 출력과 비교하면 키의 위치가 지정된 대로 정렬됩니다.
serialize=false
매개변수가 있는 일부 필드를 무시하도록 선택할 수 있습니다.@JSONField(name = "EmployeeId", serialize = false)
private Integer id;
format="MM/dd/YYYY"
매개변수로 날짜 형식을 선택할 수 있습니다.@JSONField(name = "EmployeeDoJ", format = "MM/dd/YYYY", ordinal = 5)
private Date dateOfJoining;
이제 JSON을 Java 객체로 구문 분석할 수 있습니다. JSON 문자열, 배열 및 파일을 개체로 변환하는 방법을 살펴보겠습니다.
JSON.parseObject(jsonToConvert, Employee.class);
를 사용하여 JSON 문자열을 객체로 변환할 수 있습니다. 여기서 주목해야 할 사항 중 하나는 JSON 문자열에서 누락된 키가 "거짓"으로 기본 설정된다는 것입니다. 또한 특정 필드를 역직렬화하지 않도록 선택한 경우 @JSONField 주석에서 매개변수를 "deserialize=false"로 지정할 수 있습니다.@JSONField(name = "EmployeeId", serialize = false, deserialize = false)
private Integer id;
// Convert JSON String to Java Object
String jsonToConvert = "{\"EmployeeName\":\"Stephen Hawking\",\"EmployeeSalary\":1000.0,\"EmployeeLocation\":\"UK\"}";
System.out.println("JSON to Convert ==> " + jsonToConvert + "\n");
Employee employeeObj = JSON.parseObject(jsonToConvert, Employee.class);
System.out.println("Converted to Employee Object ==> " + employeeObj);
JSON.parseArray(jsonArrayToConvert, Employee.class);
를 사용하는 Java 객체에 대한 JSON 배열String jsonArrayToConvert = "[{\"EmployeeName\":\"Stephen Hawking\",\"EmployeeSalary\":1000.0,\"EmployeeLocation\":\"UK\"},{\"EmployeeName\":\"Albert Einstein\",\"EmployeeSalary\":2000.0,\"EmployeeLocation\":\"Germany\"}]";
System.out.println("JSON Array to Convert ==> " + jsonArrayToConvert + "\n");
List<Employee> employees = JSON.parseArray(jsonArrayToConvert, Employee.class);
System.out.println("Converted to Employee Objects ==> " + employees);
JSON 파일:
// Convert JSON File to Java Object
try (Stream<String> lines = Files.lines(Paths.get("employees.json"))) {
String jsonContent = lines.collect(Collectors.joining());
List<Employee> empList = JSON.parseArray(jsonContent, Employee.class);
System.out.println("Converted to Java Object ==> " + empList);
} catch (IndexOutOfBoundsException | IOException ex) {
ex.printStackTrace();
}
아래 GitHub 리포지토리에서 더 많은 예제를 확인할 수 있습니다.
https://github.com/eugenp/tutorials/tree/master/json-modules/json-2
이 정보가 유용했다면 아래에 반응과 의견을 남겨주세요! 건배!!
Reference
이 문제에 관하여(FastJSON - POJO를 JSON으로/에서 변환), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/devanandukalkar/fastjson-convert-pojo-tofrom-json-3iig텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)