json介绍与解析

来源:互联网 发布:基于php视频网站设计 编辑:程序博客网 时间:2024/05/16 09:49

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

1 0
原创粉丝点击