json介绍与解析

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字符串中的完全一样!

你可能感兴趣的:(Android基础,json,对象,数据)