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