使用Jackson框架解析Json示例
2015-08-25 14:00
651 查看
首先需要下载包:jackson-databind-2.0.5.jarjackson-annotations-2.0.5.jarjackson-core-2.0.5.jar,网址在:http://wiki.fasterxml.com/JacksonDownload
custom.json:
{
"country":"USA",
"countryInfo":{"golden":40,"silver":23,"copper":33,"tank":1},
"countryDetail":[
{"id":"no","header":"号码","fieldIndex":"no","sortOrder":null,"printable":true},
{"id":"name","header":"姓名","fieldIndex":"name","sortOrder":null,"printable":true},
{"id":"total","header":"总成绩","fieldIndex":"total","sortOrder":null,"printable":true},
{"id":"detail","header":"详细信息","fieldIndex":"detail","sortOrder":null,"printable":true}
],
"orgood":true}
Java的Bean及解析:
import java.io.File;
import java.io.IOException;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;
public class Bean{
private String country;
private boolean orgood;
private Country countryInfo;
private CountryDetail[] countryDetail;
public String getCountry() {
return country;
}
public void setCountry(String country) {
this.country = country;
}
public boolean isOrgood() {
return orgood;
}
public void setOrgood(boolean orgood) {
this.orgood = orgood;
}
public Country getCountryInfo() {
return countryInfo;
}
public void setCountryInfo(Country countryInfo) {
this.countryInfo = countryInfo;
}
public CountryDetail[] getCountryDetail() {
return countryDetail;
}
public void setCountryDetail(CountryDetail[] countryDetail) {
this.countryDetail = countryDetail;
}
public static class Country{
public String getGolden() {
return golden;
}
public void setGolden(String golden) {
this.golden = golden;
}
public String getSilver() {
return silver;
}
public void setSilver(String silver) {
this.silver = silver;
}
public String getCopper() {
return copper;
}
public void setCopper(String copper) {
this.copper = copper;
}
public String getTank() {
return tank;
}
public void setTank(String tank) {
this.tank = tank;
}
private String golden;
private String silver;
private String copper;
private String tank;
}
public static class CountryDetail{
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getHeader() {
return header;
}
public void setHeader(String header) {
this.header = header;
}
public String getFieldIndex() {
return fieldIndex;
}
public void setFieldIndex(String fieldIndex) {
this.fieldIndex = fieldIndex;
}
public String getSortOrder() {
return sortOrder;
}
public void setSortOrder(String sortOrder) {
this.sortOrder = sortOrder;
}
public boolean isPrintable() {
return printable;
}
public void setPrintable(boolean printable) {
this.printable = printable;
}
private String id;
private String header;
private String fieldIndex;
private String sortOrder;
private boolean printable;
}
public static void main(String args[]){
ObjectMapper mapper = new ObjectMapper();
String filePath = System.getProperty("user.dir") + File.separator + "WebContent" + File.separator + "json" + File.separator + "custom.json";
try {
Bean bean = mapper.readValue(new File(filePath), Bean.class);
//读取
System.out.println("Country:"+bean.getCountry());
System.out.println("CountryInfo:"+bean.getCountryInfo().getGolden());
System.out.println("CountryDetail:"+bean.getCountryDetail()[1].getHeader());
System.out.println("orgood:"+bean.isOrgood());
} catch (JsonParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JsonMappingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
List<Content> contentList = null;
List<IntervalContent> intevContentList = null;
if(StringUtil.isNotEmpty(contentStr)){
try {
//传过来的json转为对象
if(rundataConfig.getDisplay() == 0){
contentList = mapper.readValue(contentStr,new TypeReference<List<Content>>() {});
}else{
intevContentList = mapper.readValue(contentStr,new TypeReference<List<IntervalContent>>() {});
}
} catch (JsonParseException e) {
e.printStackTrace();
} catch (JsonMappingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
custom.json:
{
"country":"USA",
"countryInfo":{"golden":40,"silver":23,"copper":33,"tank":1},
"countryDetail":[
{"id":"no","header":"号码","fieldIndex":"no","sortOrder":null,"printable":true},
{"id":"name","header":"姓名","fieldIndex":"name","sortOrder":null,"printable":true},
{"id":"total","header":"总成绩","fieldIndex":"total","sortOrder":null,"printable":true},
{"id":"detail","header":"详细信息","fieldIndex":"detail","sortOrder":null,"printable":true}
],
"orgood":true}
Java的Bean及解析:
import java.io.File;
import java.io.IOException;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;
public class Bean{
private String country;
private boolean orgood;
private Country countryInfo;
private CountryDetail[] countryDetail;
public String getCountry() {
return country;
}
public void setCountry(String country) {
this.country = country;
}
public boolean isOrgood() {
return orgood;
}
public void setOrgood(boolean orgood) {
this.orgood = orgood;
}
public Country getCountryInfo() {
return countryInfo;
}
public void setCountryInfo(Country countryInfo) {
this.countryInfo = countryInfo;
}
public CountryDetail[] getCountryDetail() {
return countryDetail;
}
public void setCountryDetail(CountryDetail[] countryDetail) {
this.countryDetail = countryDetail;
}
public static class Country{
public String getGolden() {
return golden;
}
public void setGolden(String golden) {
this.golden = golden;
}
public String getSilver() {
return silver;
}
public void setSilver(String silver) {
this.silver = silver;
}
public String getCopper() {
return copper;
}
public void setCopper(String copper) {
this.copper = copper;
}
public String getTank() {
return tank;
}
public void setTank(String tank) {
this.tank = tank;
}
private String golden;
private String silver;
private String copper;
private String tank;
}
public static class CountryDetail{
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getHeader() {
return header;
}
public void setHeader(String header) {
this.header = header;
}
public String getFieldIndex() {
return fieldIndex;
}
public void setFieldIndex(String fieldIndex) {
this.fieldIndex = fieldIndex;
}
public String getSortOrder() {
return sortOrder;
}
public void setSortOrder(String sortOrder) {
this.sortOrder = sortOrder;
}
public boolean isPrintable() {
return printable;
}
public void setPrintable(boolean printable) {
this.printable = printable;
}
private String id;
private String header;
private String fieldIndex;
private String sortOrder;
private boolean printable;
}
public static void main(String args[]){
ObjectMapper mapper = new ObjectMapper();
String filePath = System.getProperty("user.dir") + File.separator + "WebContent" + File.separator + "json" + File.separator + "custom.json";
try {
Bean bean = mapper.readValue(new File(filePath), Bean.class);
//读取
System.out.println("Country:"+bean.getCountry());
System.out.println("CountryInfo:"+bean.getCountryInfo().getGolden());
System.out.println("CountryDetail:"+bean.getCountryDetail()[1].getHeader());
System.out.println("orgood:"+bean.isOrgood());
} catch (JsonParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JsonMappingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
List<Content> contentList = null;
List<IntervalContent> intevContentList = null;
if(StringUtil.isNotEmpty(contentStr)){
try {
//传过来的json转为对象
if(rundataConfig.getDisplay() == 0){
contentList = mapper.readValue(contentStr,new TypeReference<List<Content>>() {});
}else{
intevContentList = mapper.readValue(contentStr,new TypeReference<List<IntervalContent>>() {});
}
} catch (JsonParseException e) {
e.printStackTrace();
} catch (JsonMappingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
相关文章推荐
- Json 入门例子(form表单)【0】
- JavaScript只能输入数字和两位小数
- JavaScript设计模式
- extjs 中formPanel提交到action后返回json数据到ext中,但是ext页面不进入sucess也不进入failure
- javascript于"return obj === void 0"这样的书面理由和优势
- JSP中的两种注释方式
- json字符串转成字典
- jackJson的基本用法2___map-json 与 json-map
- jackJson的基本用法1___obj-json 与 json-obj
- js方法格式化数字,加入千分符,并可以指定小数点位数
- wg_listToTree小插件 用 javascript 将List数组转换为Tree
- js常见的一些错误
- 【转】理解与使用Javascript中的回调函数
- 基于JavaScript分析property 和 attribute
- 【JavaScript】--原型
- iframe中子父类窗口调用JS的方法及注意事项
- JS学习之事件冒泡
- 问题:JsonConvert;结果:JSON详解
- JavaScript+CSS实现仿天猫侧边网页菜单效果
- jsoi2008最大数bzoj1012