[code="java"]
{
"fullname": "Sean Kelly",
"org": "SK Consulting",
"emailaddrs": [
{"type": "work", "value": "kelly@seankelly.biz"},
{"type": "home", "pref": 1, "value": "kelly@seankelly.tv"}
],
"telephones": [
{"type": "work", "pref": 1, "value": "+1 214 555 1212"},
{"type": "fax", "value": "+1 214 555 1213"},
{"type": "mobile", "value": "+1 214 555 1214"}
],
"addresses": [
{"type": "work", "format": "us",
"value": "1234 Main StnSpringfield, TX 78080-1216"},
{"type": "home", "format": "us",
"value": "5678 Main StnSpringfield, TX 78080-1316"}
],
"urls": [
{"type": "work", "value": "http://seankelly.biz/"},
{"type": "home", "value": "http://seankelly.tv/"}
]
}
[/code]
请问如何取每个元素啊~来段能用的代码,谢谢~
需要Jackson。[url]http://jackson.codehaus.org/[/url]
[code="java"]package jsonparsingtest;
import java.util.ArrayList;
import java.util.List;
import org.codehaus.jackson.map.ObjectMapper;
public class JsonParsingTest {
public static class Person {
private String fullname = null;
private String org = null;
private List<Address> emailaddrs = new ArrayList<Address>();
private List<Address> telephones = new ArrayList<Address>();
private List<Address> addresses = new ArrayList<Address>();
private List<Address> urls = new ArrayList<Address>();
public String getFullname() {
return fullname;
}
public void setFullname(String fullname) {
this.fullname = fullname;
}
public String getOrg() {
return org;
}
public void setOrg(String org) {
this.org = org;
}
public List<Address> getEmailaddrs() {
return emailaddrs;
}
public void setEmailaddrs(List<Address> emailaddrs) {
this.emailaddrs = emailaddrs;
}
public List<Address> getTelephones() {
return telephones;
}
public void setTelephones(List<Address> telephones) {
this.telephones = telephones;
}
public List<Address> getAddresses() {
return addresses;
}
public void setAddresses(List<Address> addresses) {
this.addresses = addresses;
}
public List<Address> getUrls() {
return urls;
}
public void setUrls(List<Address> urls) {
this.urls = urls;
}
}
public static class Address {
private String type = null;
private String value = null;
private String format = null;
private int pref = 0;
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public String getFormat() {
return format;
}
public void setFormat(String format) {
this.format = format;
}
public int getPref() {
return pref;
}
public void setPref(int pref) {
this.pref = pref;
}
}
public static void main(String[] args) throws Exception {
ObjectMapper om = new ObjectMapper();
// 对象就在这里读取。
Person person = om.readValue(System.in, Person.class);
// 怎么用,随便。
System.out.println(person.getFullname());
System.out.println(person.getEmailaddrs().get(0).getValue());
}
}
[/code]
使用fastJson反向生成对应的Model的List
使用fastJson反向生成对应的Model的List
json-lib这样行吧?
[code="java"]
public static void main(String[] args) {
String jsonString="{'fullname': 'Sean Kelly','org': 'SK Consulting','emailaddrs': [{'type': 'work', 'value': 'kelly@seankelly.biz'},{'type': 'home', 'pref': 1, 'value': 'kelly@seankelly.tv'} ]}";
JSONObject jsonObject = new JSONObject().fromObject(jsonString);
Object obje=jsonObject.get("emailaddrs");
Object obje1=jsonObject.get("addresses");
}
[/code]
当前使用世界上最快的json解析器fastjson了