準(zhǔn)備工作:
使用net.sf.json進(jìn)行轉(zhuǎn)換吟策。所依賴(lài)的jar包如下:
Image 1.png
所需轉(zhuǎn)換的JSON如下:
{ code: "0", msg: "", sites: [{ id: "56d03d0544029cb57d00001f", name: "XX網(wǎng)站", siteKey: "xxxx", pages: [{ id: "56d03d0544029cb57d00001d", name: "首頁(yè)", path: "index" }, { id: "56d0424144029cb57d000023", name: "第二頁(yè)", path: "page2" }] }]}
package entity;
import java.io.Serializable;import java.util.List;
/**
* 整個(gè)站點(diǎn)的數(shù)據(jù)儒士,包括sites,sites是所有網(wǎng)站的集合
* Created by Administrator on 2016/9/17.
*/
public class WebSite implements Serializable{
private String code;
private String msg;
private List<WebsiteSites> sites;
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getMsg()
{
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public List<WebsiteSites> getSites() {
return sites;
}
public void setSites(List<WebsiteSites> sites) {
this.sites = sites;
}
}
package entity;import java.io.Serializable;
import java.util.List;
/**
* 表示一個(gè)網(wǎng)站,其中pages代表這個(gè)網(wǎng)站的網(wǎng)頁(yè)集合
* Created by Administrator on 2016/9/17.
*/
public class WebsiteSites implements Serializable{
private String id;
private String name;
private String siteKey;
private List<WebsitesSitesPages> pages;
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 getSiteKey() {
return siteKey;
}
public void setSiteKey(String siteKey) {
this.siteKey = siteKey;
}
public List<WebsitesSitesPages> getPages() {
return pages;
}
public void setPages(List<WebsitesSitesPages> pages)
{
this.pages = pages;
}
}
package entity;import java.io.Serializable;
/**
* 代表pages,表示一個(gè)網(wǎng)頁(yè)的數(shù)據(jù)
* Created by Administrator on 2016/9/17.
*/
public class WebsitesSitesPages implements Serializable
{
private String id;
private String name;
private String path;
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 getPath() {
return path;
}
public void setPath(String path) {
this.path = path;
}
}
package operation;import entity.WebSite;
import entity.WebsiteSites;
import entity.WebsitesSitesPages;
import net.sf.json.JSONObject;
import java.util.HashMap;
import java.util.Map;
/**
* Created by Administrator on 2016/9/17.
*/
public class JSONOperation {
public static void main(String [] args){
String jsonData = "{\n" +
" code: \"0\",\n" +
" msg: \"\",\n" +
" sites: [{\n" +
" id: \"56d03d0544029cb57d00001f\",\n" +
" name: \"XX網(wǎng)站\",\n" +
" siteKey: \"xxxx\",\n" +
" pages: [{\n" +
" id: \"56d03d0544029cb57d00001d\",\n" +
" name: \"首頁(yè)\",\n" +
" path: \"index\"\n" +
" },\n" +
" {\n" +
" id: \"56d0424144029cb57d000023\",\n" +
" name: \"第二頁(yè)\",\n" +
" path: \"page2\"\n" +
" }]\n" +
" }]\n" +
"}";
JSONObject jsonObject = JSONObject.fromObject(jsonData);
Map<String, Class> map = new HashMap<String, Class>();
map.put("sites", WebsiteSites.class);
map.put("pages", WebsitesSitesPages.class);
WebSite webSite = (WebSite)JSONObject.toBean(jsonObject, WebSite.class, map);
System.out.println(webSite.getCode());
System.out.println(webSite.getSites().get(0).getName());
}
}
以上是將JSON 轉(zhuǎn)為L(zhǎng)ist對(duì)象的簡(jiǎn)單流程檩坚。如果想詳細(xì)了解net.sf.json的使用着撩,api鏈接如下:
http://json-lib.sourceforge.net/apidocs/net/sf/json/package-summary.html