JSON 解析
2017/9/29 10:55:47
gson
网址
官方
使用
http://search.maven.org/#artifactdetails%7Ccom.google.code.gson%7Cgson%7C2.8.1%7C
历史版本
使用
Bean
public class Person {
private String name;
private String age;
private String sex;
private String email;
public Person(String name, String age, String sex, String email) {
this.name = name;
this.age = age;
this.sex = sex;
this.email = email;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age='" + age + '\'' +
", sex='" + sex + '\'' +
", email='" + email + '\'' +
'}';
}
}
使用
import bean.Person;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.util.ArrayList;
import java.util.List;
public class Demo {
public static void main(String[] args) {
//创建对象
Person p1 = new Person("hah1", "12", "man", "11231@123.com");
Person p2 = new Person("hah2", "14", "man", "11232@123.com");
Person p3 = new Person("hah3", "15", "woman", "11233@123.com");
Person p4 = new Person("hah4", "16", "man", "11234@123.com");
Person p5 = new Person("hah5", "17", "woman", "11235@123.com");
//创建集合
List<Person> persons = new ArrayList<>();
//添加对象
persons.add(p1);
persons.add(p2);
persons.add(p3);
persons.add(p4);
persons.add(p5);
//实例化Gson
Gson gson = new Gson();
//将对象转化为gson字符串
String s = gson.toJson(p1);
String s1 = gson.toJson(persons);
//打印gson字符串
System.out.println(s);
System.out.println(s1);
//将gson字符串转化为对象
Person person = gson.fromJson(s, Person.class);
Object o = gson.fromJson(s1, new TypeToken<List<Person>>() {
}.getType());
//强转
List<Person> ps = (ArrayList<Person>) o;
//打印对象
System.out.println(person);
System.out.println(ps);
}
}
效果
{"name":"hah1","age":"12","sex":"man","email":"11231@123.com"}
[{"name":"hah1","age":"12","sex":"man","email":"11231@123.com"},{"name":"hah2","age":"14","sex":"man","email":"11232@123.com"},{"name":"hah3","age":"15","sex":"woman","email":"11233@123.com"},{"name":"hah4","age":"16","sex":"man","email":"11234@123.com"},{"name":"hah5","age":"17","sex":"woman","email":"11235@123.com"}]
Person{name='hah1', age='12', sex='man', email='11231@123.com'}
[Person{name='hah1', age='12', sex='man', email='11231@123.com'}, Person{name='hah2', age='14', sex='man', email='11232@123.com'}, Person{name='hah3', age='15', sex='woman', email='11233@123.com'}, Person{name='hah4', age='16', sex='man', email='11234@123.com'}, Person{name='hah5', age='17', sex='woman', email='11235@123.com'}]
fastjson
网址
https://github.com/alibaba/fastjson
使用
import bean.Person;
import com.alibaba.fastjson.JSON;
import java.util.ArrayList;
import java.util.List;
public class Demo {
public static void main(String[] args) {
//创建对象
Person p1 = new Person("hah1", "12", "man", "11231@123.com");
Person p2 = new Person("hah2", "14", "man", "11232@123.com");
Person p3 = new Person("hah3", "15", "woman", "11233@123.com");
Person p4 = new Person("hah4", "16", "man", "11234@123.com");
Person p5 = new Person("hah5", "17", "woman", "11235@123.com");
//创建集合
List<Person> persons = new ArrayList<>();
//添加对象
persons.add(p1);
persons.add(p2);
persons.add(p3);
persons.add(p4);
persons.add(p5);
//将对象转化为字符串
String s = JSON.toJSONString(p1);
String s1 = JSON.toJSONString(persons);
//打印字符串
System.out.println(s);
System.out.println(s1);
//将字符串转化为对象
Person person = JSON.parseObject(s, Person.class);
List<Person> people = JSON.parseArray(s1, Person.class);
//打印对象
System.out.println(person);
System.out.println(people);
}
}
效果
{"age":"12","email":"11231@123.com","name":"hah1","sex":"man"}
[{"age":"12","email":"11231@123.com","name":"hah1","sex":"man"},{"age":"14","email":"11232@123.com","name":"hah2","sex":"man"},{"age":"15","email":"11233@123.com","name":"hah3","sex":"woman"},{"age":"16","email":"11234@123.com","name":"hah4","sex":"man"},{"age":"17","email":"11235@123.com","name":"hah5","sex":"woman"}]
Person{name='hah1', age='12', sex='man', email='11231@123.com'}
[Person{name='hah1', age='12', sex='man', email='11231@123.com'}, Person{name='hah2', age='14', sex='man', email='11232@123.com'}, Person{name='hah3', age='15', sex='woman', email='11233@123.com'}, Person{name='hah4', age='16', sex='man', email='11234@123.com'}, Person{name='hah5', age='17', sex='woman', email='11235@123.com'}]
原生解析
下载
https://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22org.json%22%20AND%20a%3A%22json%22
使用
对象
//创建对象
JSONObject obj = new JSONObject();
//设置属性
obj.put("name", "haha1");
obj.put("age", "12");
obj.put("sex", "man");
obj.put("email", "1231@123.com");
//转化字符串
String s = obj.toString();
//打印
System.out.println(s);
数组
//创建数组
JSONArray jsonArray = new JSONArray();
//设置对象
jsonArray.put(new Person("haha1", "12", "man", "123123@123.com"));
jsonArray.put(new Person("haha1", "12", "man", "123123@123.com"));
String s1 = jsonArray.toString();
System.out.println(s1);
解析对象
JSONObject jsonObj = new JSONObject(s);
Object name = jsonObj.get("name");
Object age = jsonObj.get("age");
Object sex = jsonObj.get("sex");
Object email = jsonObj.get("email");
System.out.println(name);
System.out.println(age);
System.out.println(sex);
System.out.println(email);
解析数组
JSONArray jsonArray2 = new JSONArray(s1);
for (int i = 0; i < jsonArray2.length(); i++) {
JSONObject jsonObject = jsonArray2.getJSONObject(i);
System.out.println(jsonObject);
}