反解析生成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;
}
}