关于json嵌套解析

[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]
请问如何取每个元素啊~来段能用的代码,谢谢~

5个回答

需要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了

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!