JSON初學習
阿新 • • 發佈:2021-02-10
文章目錄
(一)JSON簡介
簡介:
JSON: JavaScript Object Notation JS物件簡譜 , 是一種輕量級的資料交換格式.
(二)JSON格式
<1>物件格式
一個物件, 由一個大括號表示.
括號中 描述物件的屬性 . 通過鍵值對來描述物件的屬性 (可以理解為, 大括號中, 包含的是一個個的鍵值對.)格式:
鍵與值之間使用冒號連線, 多個鍵值對之間使用逗號分隔.
鍵值對的鍵 應使用引號引住 (通常Java解析時, 鍵不使用引號會報錯. 而JS能正確解 析.)
鍵值對的值, 可以是JS中的任意型別的資料
JSON:
{
"name":"水滸傳",
" info":"梁山一百零八好漢起義的故事" ,
"price":"32.0"
}
<2>陣列格式
在JSON格式中可以與物件互相巢狀
[元素1,元素2…]
案例
{
"name" :"唐僧",
"country":"大唐",
"tudi":["豬八戒","沙僧","白龍馬",{
"name":"孫悟空",
"info":"女媧補天所留五彩石所化"
}],
"treasure":{ "name" :"紫金缽", "use":"化緣"
}
}
(三)JSON解析
<1>Gson
【1】將物件轉換為JSON字串
轉換JSON字串的步驟:
- 引入JAR包
- 在需要轉換JSON字串的位置編寫如下程式碼即可:
String json = new Gson().toJSON(要轉換的物件);
案例:Book b = BookDao.find();
String json = new Gson().toJson(b); System.out.println(json);
package Demo;
import com.google.gson.Gson;
public class Demo {
public static void main(String[] args) {
//1.建立JSON物件
Hero h = new Hero("宋江",1,"及時雨");
//2.轉化
String s = new Gson().toJson(h);
System.out.println(s);
}
}
【2】將JSON字串轉換為物件
將JSON字串轉換為物件
- 引入JAR包
- 在需要轉換Java物件的位置, 編寫如下程式碼:
物件 = new Gson().fromJson(JSON字串,物件型別.class);
案例:
String json = "{“id”:1,“name”:“水滸傳”,“author”:"施耐庵 “,“info”:“梁山一百零八好漢起義的故事”,“price”:32.0}”;
Book book = new Gson().fromJson(json, Book.class); System.out.println(book);
package Demo;
import com.google.gson.Gson;
public class Demo1 {
public static void main(String[] args) {
//1.建立JSON物件
Gson g = new Gson();
//2.轉化{"name":"宋江","num":"1","info":"及時雨"}
Hero h = g.fromJson("{\"name\":\"宋江\",\"num\":\"1\",\"info\":\"及時雨\"}",Hero.class);
String s = new Gson().toJson(h);
System.out.println(s);
}
}
<2>FastJson
【1】將物件轉換為JSON字串
轉換JSON字串的步驟:
- 引入JAR包
- 在需要轉換JSON字串的位置編寫如下程式碼即可:
String json=JSON.toJSONString(要轉換的物件);
案例:Book b = BookDao.find();
String json=JSON.toJSONString(b);
System.out.println(json);
import com.alibaba.fastjson.JSON;
public class Demo2 {
public static void main(String[] args) {
Hero h = new Hero("宋江",1,"及時雨");
//1.轉化
String s = JSON.toJSONString(h);
System.out.println(s);
}
}
【2】將JSON字串轉換為物件
- 引入JAR包
- 在需要轉換Java物件的位置, 編寫如下程式碼:
型別 物件名=JSON.parseObject(JSON字串, 型別.class);
或
List<型別> list=JSON.parseArray(JSON字串,型別.class); 案例:String json = "{“id”:1,“name”:“水滸傳”,“author”:"施耐庵 “,“info”:“梁山一百零八好漢起義的故事”,“price”:32.0}”;
Book book = JSON.parseObject(json, Book.class);
System.out.println(book);
import com.alibaba.fastjson.JSON;
public class Demo3 {
public static void main(String[] args) {
//1.轉化{"name":"宋江","num":"1","info":"及時雨"}
Hero h = JSON.parseObject("{\"name\":\"宋江\",\"num\":\"1\",\"info\":\"及時雨\"}", Hero.class);
System.out.println(h);
System.out.println(h.getInfo());
System.out.println(h.getName());
System.out.println(h.getNum());
}
}