자바 의 JSON 데이터 생 성 및 해석
JSON:JavaScript Object Notation JS 대상 약 보 는 XML 과 유사 한 언어 입 니 다.XML 보다 더 작고 빠 르 며 해석 하기 쉽다.프로젝트 전단 과 서버 의 네트워크 데이터 전송 에 주로 사 용 됩 니 다.
2.JSON 의 문법
대상
하나의 대상 은 하나의 큰 괄호 로{},{}에서 하나의 키 쌍 을 통 해 대상 의 속성 을 설명 합 니 다.
주의:
키 와 값 사 이 는 콜론 으로 연결 되 며,여러 키 쌍 사 이 는 쉼표 로 구 분 됩 니 다.
키 가 맞 는 키 는 따옴표 로 끌 어야 합 니 다.키 값 이 맞 는 값 은 JS 의 임의의 데이터 형식 일 수 있 습 니 다.
형식:
{
키 1:값 1,
키 2:값 2,
.
.
}
사례:JSON 으로 책 한 권 설명,속성:책 이름,소개
{
"name":" ",
"info":" "
}
배열 형식[]는 배열 을 나타 내 는데 JSON 에서 배열 은 대상 과 서로 끼 워 넣 을 수 있다.
형식:
[원소 1,원소 2,...]
사례:
{
"name":["자 제 력","파도 의 꼭대기"]
}
3.JSON 과 자바 대상 간 의 상호 전환
JSON 과 자바 대상 간 의 전환 은 현재 주로 Gson 라 이브 러 리 나 FastJSon 라 이브 러 리 를 참조 하여 작 동 합 니 다.
Gson
Gson 은 Google 이 자바 대상 과 JSON 데이터 사 이 를 매 핑 하 는 자바 라 이브 러 리 를 제공 합 니 다.자바 대상 을 JSON 문자열 로 변환 할 수도 있 고 JSON 문자열 을 자바 대상 으로 변환 할 수도 있 습 니 다.
자바 대상 을 JSON 문자열 로 변환 하 는 절차:
1.JAR 가방 도입
2.변환 할 JSON 문자열 의 위치 에서 다음 코드 를 작성 하면 됩 니 다.
String json=new Gson().toJSON(변환 할 대상);
사례:
북 대상 클래스 만 들 기
public class Book {
private String id;
private String name;
private String info;
@Override
public String toString() {
return "Book{" +
"id='" + id + '\'' +
", name='" + name + '\'' +
", info='" + info + '\'' +
'}';
}
public Book(String id, String name, String info) {
this.id = id;
this.name = name;
this.info = info;
}
public Book() {
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Book book = (Book) o;
return Objects.equals(id, book.id) &&
Objects.equals(name, book.name) &&
Objects.equals(info, book.info);
}
@Override
public int hashCode() {
return Objects.hash(id, name, info);
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getInfo() {
return info;
}
public void setInfo(String info) {
this.info = info;
}
}
북 대상 을 JSON 으로 전환
public class toJSON {
public static void main(String[] args) {
//1. Gson
Gson g = new Gson();
//2.
Book b = new Book("10"," "," ");
String s = g.toJson(b);
System.out.println(s);
}
}
:
{"id":"10","name":" ","info":" "}
JSON 문자열 을 자바 대상 으로 변환 합 니 다.1.JAR 가방 도입
2.변환 이 필요 한 자바 대상 의 위치 에서 다음 코드 를 작성 하면 됩 니 다.
대상=new Gson().from JSON(JSON 문자열,대상 유형.class);
주의:
변 환 된 자바 대상 이 JSON 문자열 의 속성 을 포함 하지 않 을 때 변환 과정 에서 속성 을 잃 어 버 릴 수 있 습 니 다.해결 방법:맵 집합 으로 전환
사례:
JSON 문자열 을 북 대상 으로 변환
public class toBook {
public static void main(String[] args) {
//1. Gson
Gson g = new Gson();
//2. : {"id":"10","name":" ","info":" "}
Book b = g.fromJson("{\"id\":\"10\",\"name\":\" \",\"info\":\" \"}", Book.class);
System.out.println(b.getId());
}
}
:
10
JSON 문자열 을 Map 집합 으로 변환주의:
JSON 에 배열 형식의 키 쌍 이 존재 할 때 배열 형식의 키 쌍 은 최종 결 과 를 List 형식 으로 변환 합 니 다.
public class toMap{
public static void main(String[] args) {
//1. Gson
Gson g = new Gson();
//2.
HashMap data = g.fromJson("{\"id\":\"10\",\"name\":\" \",\"info\":\" \", \"page\":[\" \",\" \"]}"HashMap.class);
List page=(List) data.get("page");
System.out.println(data.get("id"));
System.out.println(page.get("1"));
}
}
:
10
FastJsonFastJSon 은 자바 대상 과 JSON 데이터 사이 에 매 핑 할 자바 라 이브 러 리 를 알 리 가 제공 합 니 다.
자바 대상 을 JSON 문자열 로 변환
단계:
1.JAR 가방 도입
2.변환 할 JSON 문자열 의 위치 에서 다음 코드 를 작성 하면 됩 니 다.
Gson FastJSon 에 비해 새로운 대상 을 만 들 필요 가 없습니다.
String json=JSON.toJSONstring(변환 할 대상);
JSON 문자열 을 자바 대상 으로 변환 합 니 다.
단계:
1.JAR 가방 도입
2.변환 할 JSON 문자열 의 위치 에서 다음 코드 를 작성 하면 됩 니 다.
대상 을 바꾸다
String json=JSON.parseObject(JSON 문자열,형식.class);
이전 목록
List<형식>list=JSON.parseArray(JSON 문자열,형식.class);
4.요약:
JSON 은 모 바 일 기기 의 경우 특히 네트워크 환경 이 좋 지 않 고 데이터 제한 이 있 는 경우 XML 형식의 데이터 전송 에 비해 데 이 터 를 절약 하고 전송 효율 이 높다.
레 퍼 런 스
JSON 의 해석 방식
자바 에 있 는 JSON 데이터 의 생 성과 해석 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 자바 에 있 는 JSON 의 생 성과 해석 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 지원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.