1. 程式人生 > 其它 >解析JSON-java與JSON

解析JSON-java與JSON

技術標籤:JSONjava

使用Java解析JSON

文章概述:
正所謂解析,就是將我們獲取到的JSON字串轉換為易於操作的Java物件,或者是將Java物件轉換為JSON格式的字串。在講解如何解析的操作之前呢,先了解以下什麼JSON,瞭解完畢後再進行相關的操作吧。
JSON:(Java Script Object Notaion) 也成為JS物件簡譜,脫離於程式語言,是一種輕量級的資料交換格式。它基於 ECMAScript (歐洲計算機協會制定的js規範)的一個子集,採用完全獨立於程式語言的文字格式來儲存和表示資料。簡潔和清晰的層次結構使得 JSON 成為理想的資料交換語言。 易於人閱讀和編寫,同時也易於機器解析和生成,並有效地提升網路傳輸效率。(-來自百度百科),順便了解一下另一種常見的資料交換格式(XML)。

XML(eXtensible Markup Language)可擴充套件標記語言,標準通用標記語言的子集,簡稱XML。它可以用來標記資料、定義資料型別,是一種允許使用者對自己的標記語言進行定義的源語言。 它非常適合全球資訊網傳輸,提供統一的方法來描述和交換獨立於應用程式或供應商的結構化資料。是Internet環境中跨平臺的、依賴於內容的技術,也是當今處理分散式結構資訊的有效工具。
關於XML與JSON的優缺點比較。https://blog.csdn.net/qq_34102108/article/details/51359947
JSON解析
方式一:Gson
首先要匯入jar包,沒有jar包的小夥伴可以百度去官網下載哦。
1.java物件轉換為JSON字串
利用Gson的toJson方法

public static void main(String[] args){
	//1. 建立Gson物件
        Gson g =new Gson();
        //2.  轉換
        Book b = new Book(1,"金蘋果","種植金蘋果的過程");
        String s = g.toJson(b);
        System.out.println(s);
}

Book類

public class Book{
 	private Integer id;
private String name; private String info; public Book(Integer id, String name, String info) { this.id = id; this.name = name; this.info = info; } @Override public String toString() { return "Book{" + "id='" + id + '\'' + ", name='" + name + '\'' + ", info='" + info + '\'' + '}'; } //為了節約筆墨get&set方法就不再搬運了

控制檯列印結果
在這裡插入圖片描述
2.將JSON字串轉換為java物件
利用Gson的fromJson方法

   public static void main(String[] args) {
       //1. 建立Gson物件
       Gson g =new Gson();
    	//2.  轉換 {"id":"1","name":"金蘋果","info":"種植金蘋果的過程"}
    	 Book b = g.fromJson("{\"id\":\"1\",\"name\":\"金蘋果\",\"info\":\"種植金蘋果的過程\"}",Book.class);
       System.out.println(b.toString());
    }

控制檯列印
在這裡插入圖片描述
方式二:通過fastjson
也要匯入jar包,沒有jar包的小夥伴可以百度去官網下載哦。
1.java物件轉換為JSON字串
通過JSON.toJSONString(Object object)方法傳入需要轉換的物件。

    public static void main(String[] args) {
        Book book = new Book(2,"唐詩三百首","床前明月光,疑是地上霜");
        // 1. 轉換
        String json = JSON.toJSONString(book);
        System.out.println(json);
    }

控制檯列印
在這裡插入圖片描述

2.將JSON字串轉換為java物件
通過JSON.parseObject(String string,Class clazz)

   public static void main(String[] args) {
        //{"id":"2","info":"床前明月光,疑是地上霜","name":"唐詩三百首"}
        // 1. 轉換 json字串轉化為物件
        Book book = JSON.parseObject("{\"id\":\"2\",\"info\":\"床前明月光,疑是地上霜\",\"name\":\"唐詩三百首\"}", Book.class);
        System.out.println(book.toString);
    }

控制檯列印:
在這裡插入圖片描述
我們分別通過Gson和fastjson完成了JSON解析。