JSON格式与解析


概述

同XML用途类似,也是一种数据交换语言,出现的时间比XML晚,现在被广泛使用。

数据格式

//JSON中的一个对象用大括号括住
{
  "属性1":"值1",
  "属性2":"值2"
}
//JSON的数组
[元素1,元素2...]

注意:JSON的数据存储非常灵活,除了属性必须是字符串,值包括数组的元素可以是对象,也可是数组或字符串
例如:

{
  "name":[{"name":"张三","info":"法外狂徒"},"里斯"],
  "info":{"name":["1","2"],"info":"数组"}
}

Java对象与JSON数据的转换

通过gson转换流程

  1. 引入gson.jar
    2.1 将Java对象转换为JSON格式字符串
String json = new Gson().toJson(要转换的对象);//创建Gson对象调用toJson方法得到JSON格式字符串

2.2 将JSON格式字符串转换为Java对象

对象 = new Gson().fromJson(JSON格式字符串,对象类型.getClass());

通过FastJSON转换流程

  1. 引入fastjson.jar
    2.1 将Java对象转换为JSON格式字符串
String json = JSON.toJSONString(要转换的对象);

2.2 将JSON格式字符串转换为Java对象

//转对象
对象 = JSON.parseObject(JSON字符串,类型.getClass());

//转数组
List<?> list = JSON.parseArray(JSON字符串,类型.getClass());

gson转换案例

public class JsonTest {
    public static void main(String[] args) {
        Person p = new Person("张三", "12");
        //使用gson
        //1.对象转JSON字符串
        //{"name":"张三","age":"12"}
        System.out.println(new Gson().toJson(p));
        //2.JSON字符串转对象
        String s = "{\"name\":\"张三\",\"age\":\"12\"}";
        Person p2 = new Gson().fromJson(s, p.getClass());
        System.out.println(p2);
    }

}
class Person{
    String name;
    String age;

    public Person(String name, String age) {
        this.name = name;
        this.age = age;
    }

    @Override
    public String toString() {
        return "Book{" +
                "name='" + name + '\'' +
                ", age='" + age + '\'' +
                '}';
    }
}


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM