javaScript Object Notation符号 基于Javascript语言的轻量级的数据交换格式; 即:用来传输数据的一种格式.
名(键)值对(name:value) 例:
{name1:value1,name2:value2......}键值对的顺序无所谓只是这么叫,并不等同于Object[]我们平时使用的数组概念
[value1,value2,value3,...]解析方式有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 ]
Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。可以将一个 JSON 字符串转成一个 Java 对象,或者反过来。
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字符串中的完全一样!
新闻热点
疑难解答