json介绍
基本概念
JavaScript Object Notation符号
基于JavaScript语言的轻量级的数据交换格式;
即:用来传输数据的一种格式.
json对象
名(键)值对(name:value)
例:
{name1:value1,name2:value2......}
键值对的顺序无所谓
json数组
只是这么叫,并不等同于Object[]我们平时使用的数组概念
[value1,value2,value3,...]
json解析
解析方式有org.json,Gson,fastJson等。。。
org.json解析
* 当json字符串以”{“开始,用JSONObject解析
* 当json字符串以”[“开始,用JSONArray解析
应为我比较喜欢用Gson,所以只介绍Gson解析
User.java
public class User {
private String name;
private int age;
public User() {
}
public User(String name, int age) {
super();
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "User [name=" + name + ", age=" + age + "]";
}
}
用org.json解析String json = “{name:’zhangsan’,age:20}”;
String json = "{"name": "李四", "age": 20}";
JSONObject object = new JSONObject(json);
String name = object.getString("name");
int age = object.getInt("age");
System.out.println(name + " " + age);
User user = new User(name, age);
System.out.println(user);
打印结果为:User [name=李四 , age=20 ]
json解析(Gson)
Gson解析简介
Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。可以将一个 JSON 字符串转成一个 Java 对象,或者反过来。
Gson类的常用方法
- 1.< T > T fromJson(String json,Class clz):将json字符串转成一个类的对象形式
- 2.String toJson(Object obj):将一个javabean类或者集合的对象转成json字符串的形式
举例
String json = "{name:'zhangsan',age:20}";
Person p =new Gson().fromJson(json, Person.class);
Person类中定义了name,age属性
用Gson解析String json = “{name:’zhangsan’,age:20}”;
String json = "{"name": "李四", "age": 20}";
// 1、创建一个Gson对象
Gson gson = new Gson();
// 2、解析字符串. User.class : 1、必须有无参的构造方法 2、每个属性必须提供setter getter方法
// 3、类的属性要和json格式的字符串中的键值对要匹配
User user = gson.fromJson(json, User.class);
System.out.println(user);
打印结果为:User [name=李四 , age=20 ]
注意: 在用GSON/fastjson解析时,javabean中的属性名和数据类型一定要跟json字符串中的完全一样!