1.JSON值的内容形式可以是:”名称 - 值“对、数组 或 对象

2. Gson解析
Google的开源库
- 解析原理:基于事件驱动
- 解析流程:根据所需取的数据
- 建立1个对应于JSON数据的JavaBean类,即可通过简单操作解析出所需数据

3. Jackson解析
- 解析原理:基于事件驱动
- 解析过程: 类似 GSON,先创建1个对应于JSON数据的JavaBean类,再通过简单操作即可解析
- 与 Gson解析不同的是:GSON可按需解析,即创建的JavaBean类不一定完全涵盖所要解析的JSON数据,按需创建属性;但Jackson解析对应的JavaBean必须把Json数据里面的所有key都有所对应,即必须把JSON内的数据所有解析出来,无法按需解析
4.解析方式对比

5. 与XML解析对比

import java.util.List;
public class Car {
/**
* translation : ["车"]
* basic : {"phonetic":"kɑː","explains":["n. 汽车;车厢","n. (Car)人名;(土)贾尔;(法、西)卡尔;(塞)察尔"]}
* query : car
* errorCode : 0
* web : [{"value":["汽车","车子","小汽车"],"key":"Car"},{"value":["概念车","概念车","概念汽车"],"key":"concept car"},{"value":["碰碰车","碰撞用汽车","碰碰汽车"],"key":"bumper car"}]
*/
private BasicBean basic;
private String query;
private int errorCode;
private List<String> translation;
private List<WebBean> web;
public BasicBean getBasic() {
return basic;
}
public void setBasic(BasicBean basic) {
this.basic = basic;
}
public String getQuery() {
return query;
}
public void setQuery(String query) {
this.query = query;
}
public int getErrorCode() {
return errorCode;
}
public void setErrorCode(int errorCode) {
this.errorCode = errorCode;
}
public List<String> getTranslation() {
return translation;
}
public void setTranslation(List<String> translation) {
this.translation = translation;
}
public List<WebBean> getWeb() {
return web;
}
public void setWeb(List<WebBean> web) {
this.web = web;
}
public static class BasicBean {
/**
* phonetic : kɑː
* explains : ["n. 汽车;车厢","n. (Car)人名;(土)贾尔;(法、西)卡尔;(塞)察尔"]
*/
private String phonetic;
private List<String> explains;
public String getPhonetic() {
return phonetic;
}
public void setPhonetic(String phonetic) {
this.phonetic = phonetic;
}
public List<String> getExplains() {
return explains;
}
public void setExplains(List<String> explains) {
this.explains = explains;
}
}
public static class WebBean {
/**
* value : ["汽车","车子","小汽车"]
* key : Car
*/
private String key;
private List<String> value;
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
public List<String> getValue() {
return value;
}
public void setValue(List<String> value) {
this.value = value;
}
}
}