Json源生解析

来源:互联网 发布:java web 混淆 编辑:程序博客网 时间:2024/05/23 15:40

反解析生成Json格式

TestJson.java

public class TestJson {    public static void main(String[] args) {        JSONObject object = new JSONObject();        object.put("firstName", "John");        object.put("lastName", "Smith");        object.put("sex", "male");        object.put("age", 25);        JSONObject address = new JSONObject();        address.put("streetAddress", "宝盛北里西区28号");        address.put("city", "北京");        address.put("state", "北京");        address.put("postalCode", "100019");        object.put("address", address);        JSONArray phoneNumber = new JSONArray();        JSONObject number1 = new JSONObject();        number1.put("type", "home");        number1.put("number", " 10086");        phoneNumber.put(number1);        JSONObject number2 = new JSONObject();        number2.put("type", "fax");        number2.put("number", " 10010");        phoneNumber.put(number2);        object.put("phoneNumber", phoneNumber);        System.out.println(object.toString());    }}
Address.java

public class Address {    private String streetAddress;    private String city;    private String state;    private String postalCode;    public String getStreetAddress() {        return streetAddress;    }    public void setStreetAddress(String streetAddress) {        this.streetAddress = streetAddress;    }    public String getCity() {        return city;    }    public void setCity(String city) {        this.city = city;    }    public String getState() {        return state;    }    public void setState(String state) {        this.state = state;    }    public String getPostalCode() {        return postalCode;    }    public void setPostalCode(String postalCode) {        this.postalCode = postalCode;    }}

Phone.java

public class Phone {    private String type;    private String number;    public String getType() {        return type;    }    public void setType(String type) {        this.type = type;    }    public String getNumber() {        return number;    }    public void setNumber(String number) {        this.number = number;    }}

User.java

public class User {    private String firstName;    private String lastName;    private String sex;    private int age;    private Address address;    private List<Phone> phoneNumber;    public String getFirstName() {        return firstName;    }    public void setFirstName(String firstName) {        this.firstName = firstName;    }    public String getLastName() {        return lastName;    }    public void setLastName(String lastName) {        this.lastName = lastName;    }    public String getSex() {        return sex;    }    public void setSex(String sex) {        this.sex = sex;    }    public int getAge() {        return age;    }    public void setAge(int age) {        this.age = age;    }    public Address getAddress() {        return address;    }    public void setAddress(Address address) {        this.address = address;    }    public List<Phone> getPhoneNumber() {        return phoneNumber;    }    public void setPhoneNumber(List<Phone> phoneNumber) {        this.phoneNumber = phoneNumber;    }}

生成的JSON格式的解析文件

"{\"firstName\":\"John\",\"lastName\":\"Smith\",\"address\":{\"streetAddress\":\"宝盛北里西区28号\",\"city\":\"北京\",\"postalCode\":\"100019\",\"state\":\"北京\"},\"phoneNumber\":[{\"number\":\" 10086\",\"type\":\"home\"},{\"number\":\" 10010\",\"type\":\"fax\"}],\"sex\":\"male\",\"age\":25}\n";
将Json格式的文件进行解析存入类中:
public class TestJson02 {    public static void main(String[] args) {        String str = "{\"firstName\":\"John\",\"lastName\":\"Smith\",\"address\":{\"streetAddress\":\"宝盛北里西区28号\",\"city\":\"北京\",\"postalCode\":\"100019\",\"state\":\"北京\"},\"phoneNumber\":[{\"number\":\" 10086\",\"type\":\"home\"},{\"number\":\" 10010\",\"type\":\"fax\"}],\"sex\":\"male\",\"age\":25}\n";        User user = parserUser(str);        System.out.println(user.getFirstName());        System.out.println(user.getAddress().getStreetAddress());        System.out.println(user.getPhoneNumber().get(0).getNumber());        user.setFirstName("aaa");        System.out.println(toJSONString(user));    }      private static User parserUser(String str) {        JSONObject object = new JSONObject(str);        User user = new User();        user.setFirstName(object.optString("firstName"));        user.setLastName(object.optString("lastName"));        user.setSex(object.optString("sex"));        user.setAge(object.optInt("age"));        JSONObject addressObj = object.optJSONObject("address");        Address address = new Address();        address.setStreetAddress(addressObj.optString("streetAddress"));        address.setCity(addressObj.optString("city"));        address.setState(addressObj.optString("state"));        address.setPostalCode(addressObj.optString("postalCode"));        user.setAddress(address);        List<Phone> phones = new ArrayList<>();        JSONArray phoneNumber = object.optJSONArray("phoneNumber");        for (int i = 0; i < phoneNumber.length(); i++) {            JSONObject numberObj = phoneNumber.optJSONObject(i);            Phone phone = new Phone();            phone.setType(numberObj.optString("type"));            phone.setNumber(numberObj.optString("number"));            phones.add(phone);        }        user.setPhoneNumber(phones);        return user;    }}



0 0
原创粉丝点击