JAVA 생 성 및 해석 테이프 에 괄호 가 있 는 JSON 데이터
7072 단어 자바
1. json 간단 한 소개
1.1 json 은 가장 유행 하고 광범 위 하 게 통용 되 는 데이터 전송 형식 으로 자바 스 크 립 트 Object Notation 이 라 고 부 르 며 최초 로 자바 스 크 립 트 에서 사용 되 었 습 니 다.
1.2 예 를 들 어 다음은 제 이 슨 의 대상 이 고 이름 은 왕 니 마 입 니 다. 그 는 두 명의 팬 이 배열 을 구성 하 는데 하 나 는 왕 군 이 고 하 나 는 작은 니 마 입 니 다.
{
"name": "왕 니 마",
"fans":[{
"name": "왕 군",
"age":"7"
},{
"name": "작은 니 마",
"age":"10"
}]
}
2. json 데이터 생 성 및 분석
2.1 제 이 슨 이 처리 하 는 가방 은 여러 가지 가 있 습 니 다. 오픈 소스 잭 슨, 구 글 Gson, 알 리 바 바 의 Fastjson. Gson 은 기능 이 강하 지만 Fastjson 의 성능 이 빠 릅 니 다. 어떻게 하면 현명 한 견 해 를 선택 할 수 있 습 니까?
2.2 여기 서 저 는 처음에 org. json 을 사 용 했 습 니 다. 그 다음 에 복잡 한 json 을 보 여주 기 위해 자바 bean 으로 전환 하고 기능 이 강 한 Gjson 을 가 져 왔 습 니 다. 먼저 두 개의 maven 의존 도 를 첨부 합 니 다.
org.json
json
20160810
com.google.code.gson
gson
2.7
2.3 제 이 슨 데이터 의 생 성, 즉 각종 유형의 제 이 슨 (String, map 와 자바 bean)
DemoCreateJson.java
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* Created by garfield on 2016/10/16.
* json
*/
public class DemoCreateJson {
public static void main(String[] args) {
StringCreateJson();
mapCreateJson();
beanCreateJson();
}
//String json
/**
* {
"name":" ",
"fans":[{
"name":" ",
"age":"7"
},{
"name":" ",
"age":"10"
}]
}
*/
static void StringCreateJson(){
JSONObject jsonObject = new JSONObject();
jsonObject.put("name"," ");
// , json
JSONObject jsonObject1 = new JSONObject();
jsonObject1.put("name"," ");
jsonObject1.put("age",7);
JSONObject jsonObject2 = new JSONObject();
jsonObject2.put("name"," ");
jsonObject2.put("age",10);
// list json
List jsonObjects = new ArrayList();
jsonObjects.add(jsonObject1);
jsonObjects.add(jsonObject2);
jsonObject.put("fans",jsonObjects);
System.out.println("jsonObject json:" + jsonObject);
}
// , map
static void mapCreateJson(){
Map map = new HashMap();
map.put("name"," ");
Map map1 = new HashMap();
map1.put("name"," ");
map1.put("age",7);
Map map2 = new HashMap();
map2.put("name"," ");
map2.put("age",10);
List
2.3.1 상위 클래스 에 기본 bean 이 부족 함
Actor.java
import java.util.List;
import java.util.Map;
/**
* Created by garfield on 2016/10/16.
*/
public class Actor {
private String name;
private List fans;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List getFans() {
return fans;
}
public void setFans(List fans) {
this.fans = fans;
}
}
2.4 제 이 슨 의 해석, 여기에 두 가지 해석 방식 을 썼 습 니 다. 마찬가지 로 자주 사용 하 는 것 은 두 번 째 입 니 다. 제 이 슨 은 자바 bean 으로 전환 합 니 다.
DemoParseJson.java
import com.google.gson.*;
import org.json.JSONObject;
import java.util.Map;
/**
* Created by garfield on 2016/10/16.
*/
public class DemoParseJson {
public static void main(String[] args) {
String jsonString = "{\"fans\":[{\"name\":\" \",\"age\":7},{\"name\":\" \",\"age\":10}],\"name\":\" \"}";
normalParse(jsonString);
beanParse(jsonString);
}
static void normalParse(String jsonString){
JSONObject jsonObject = new JSONObject(jsonString);
//
System.out.println(" :");
System.out.println(" " + jsonObject.getString("name"));
//
System.out.println(" :");
for (Object fan : jsonObject.getJSONArray("fans")) {
JSONObject object = (JSONObject)fan;
System.out.println(" :" + object.get("name") + ", :" + object.get("age"));
}
}
//org.json bean , gson
static void beanParse(String jsonString){
System.out.println("=========Gson =========");
JsonObject obj = new JsonParser().parse(jsonString).getAsJsonObject();
Actor actor = new Gson().fromJson(obj,Actor.class);
System.out.println(" :");
System.out.println(" " + obj.get("name"));
System.out.println(" :");
for (Map map : actor.getFans()) {
System.out.println(" :" + map.get("name") + " :" + map.get("age"));
}
}
}
2.4.1 집행 결 과 를 첨부 한다.
:
:
: , :7
: , :10
=========Gson =========
:
" "
:
: 7.0
: 10.0
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.