java解析器之Json解析

来源:互联网 发布:数据库第五版答案 编辑:程序博客网 时间:2024/05/21 17:26
package sample.org.jasen.learn10.testJson;

import sample.org.json.JSONArray;
import
sample.org.json.JSONObject;


public class
TestJson {
public static void main(String[] args) {
JSONObject object = new JSONObject();
object.put("firstName","John");
object.put("lastName","Jack");
object.put("age",13);
object.put("sex","male");
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);
}
}
运行结果:{"firstName":"John","lastName":"Jack","address":{"streetAddress":"宝盛北里西区28号","city":"北京","postalCode":"100019","state":"北京"},"phoneNumber":[{"number":" 10086","type":"home"},{"number":" 10010","type":"fax"}],"sex":"male","age":13}
解析代码:
package sample.org.jasen.learn10.testJson;

import sample.org.json.JSONArray;
import
sample.org.json.JSONObject;

import java.util.ArrayList;
import
java.util.List;


public class
TestJson2 {
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(toJSONString(user));
}
private static String toJSONString(User user){//将对象转化成Json格式
JSONObject object = new JSONObject();
object.put("firstName",user.getFirstName());
object.put("lastName",user.getLastName());

JSONObject object1 = new JSONObject();
Address address = new Address();
object1.put("streetAddress",address.getStreetAddress());
object1.put("city",address.getCity());

JSONArray objects = new JSONArray();
List phonelist = user.getPhonelist();
for
(Phone p:
phonelist) {
JSONObject object2 = new JSONObject();
object2.put("type",p.getType()).put("number",p.getNum());
objects.put(object2);
}
object.put("phoneNumber",objects);
return
object.toString();

}
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.setAge(object.optInt("age"));

JSONObject object1 = object.optJSONObject("address");
Address address = new Address();
address.setStreetAddress(object1.optString("streetAddress"));
address.setCity(object1.optString("city"));
address.setPostalCode(object1.optString("postalCode"));
address.setState(object1.optString("state"));
user.setAddress(address);

List phones = new ArrayList<>();
JSONArray phoneNumber = object.optJSONArray("phoneNumber");
for
(int i = 0; i < phoneNumber.length(); i++) {
JSONObject object2 = phoneNumber.optJSONObject(i);
Phone phone = new Phone();
phone.setNum( object2.optString("type"));
phone.setType( object2.optString("number"));
phones.add(phone);
}
user.setPhonelist(phones);
return
user;
}
}


0 0
原创粉丝点击