Json的使用方式
Json在傳輸資料的時候要比XML效率高一些
簡介:JSON: JavaScript Object Notation JS物件簡譜 , 是一種輕量級的資料交換格式.
物件格式
一本書
書名
簡介
Java中的格式
class Book{
private String name;
private String info;
get/set...
}
Book b = new Book();
b.setName(“三國演義”);
b.setInfo(“爭天下”);
js的寫法
js:
var b = new Object();
b.name = "三國演義";
b.info = "爭天下";
XML的寫法
XML:
<book>
<name>金蘋果</name>
<info>種蘋果</info>
</book>
JSON的寫法
大括號就表示一個物件
JSON:
{
"name":"金蘋果",
"info":"種蘋果"
}
使用規則
一個物件, 由一個大括號表示.
括號中 描述物件的屬性 . 通過鍵值對來描述物件的屬性
(可以理解為, 大括號中, 包含的是一個個的鍵值對.)
格式:
鍵與值之間使用冒號連線, 多個鍵值對之間使用逗號分隔.
鍵值對的鍵 應使用引號引住 (通常Java解析時, 鍵不使用引號會報錯. 而JS能正確解
析.)
鍵值對的值, 可以是JS中的任意型別的資料
陣列格式
在JSON格式中可以與物件互相巢狀 [元素1,元素2…]
例如
{
"name":"張無",
"age":18,
"pengyou":["張三","李四","王二","麻子",{
"name":"趙四",
"info":"魔性"
}],
"heihei":{
"name":"大長刀",
"length":"40m"
}
}
例如找一個免費的API開放平臺
https://wx.jdcloud.com/market/datas/26/10610
然後找一個json解析平臺
https://www.bejson.com/jsonviewernew/
然後點開Json檢視,解析如圖層級關係如圖
JSON解析主要有兩種一種是Google的Gson,另一種是阿里的FastJson
一般Gson的效果會好一點‘
JSON解析的作用’
將Java中的物件 快速的轉換為 JSON格式的字串. 將JSON格式的字串, 轉換為Java的物件.>
因為Java官方沒有封裝相應的jar包,所以需要自己下載相應的包匯入,在部落格的下載連結中有一個json的壓縮包,我已經上傳 了需要的可以下載裡邊包含了Gson的包和FastJson的jar包
Gson使用方式
將物件轉換為JSON字串
轉換JSON字串的步驟:
- 引入JAR包
- 在需要轉換JSON字串的位置編寫如下程式碼即可:
String json = new Gson().toJSON(要轉換的物件);
案例:
匯入json jar包的方式
沒有lib資料夾的情況下先建立一個lib資料夾然後匯入jar包
將物件轉換為JSON字串
import com.google.gson.Gson;
public class Demo {
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);
}
}
class Book{
private int id;
private String name;
private String info;
public Book(int id, String name, String info) {
this.id = id;
this.name = name;
this.info = info;
}
public Book() {
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getInfo() {
return info;
}
public void setInfo(String info) {
this.info = info;
}
@Override
public String toString() {
return "Book{" +
"id=" + id +
", name='" + name + '\'' +
", info='" + info + '\'' +
'}';
}
}
將字串轉換回物件去
import com.google.gson.Gson;
public class Demo {
public static void main(String[] args) {
//1建立Gson物件
Gson g=new Gson();
// 2 轉換 將字串轉換回物件去 "id":1,"name":"三國演義","info":"三國紛爭"
/* Book b=new Book(1,"三國演義","三國紛爭");
String s=g.toJson(b);
System.out.println(s);*/
Book b=g.fromJson("{\"id\":1,\"name\":\"三國演義\",\"info\":\"三國紛爭\"}",Book.class);
System.out.println(b.getName());
}
}
class Book{
private int id;
private String name;
private String info;
public Book(int id, String name, String info) {
this.id = id;
this.name = name;
this.info = info;
}
public Book() {
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getInfo() {
return info;
}
public void setInfo(String info) {
this.info = info;
}
@Override
public String toString() {
return "Book{" +
"id=" + id +
", name='" + name + '\'' +
", info='" + info + '\'' +
'}';
}
}
import com.google.gson.Gson;
public class Demo {
public static void main(String[] args) {
//如果物件只使用一次,那麼就可以用匿名型別
Book b=new Book(1,"三國演義","三國紛爭");
String s=new Gson().toJson(b);
System.out.println(s);
}
}
class Book{
private int id;
private String name;
private String info;
public Book(int id, String name, String info) {
this.id = id;
this.name = name;
this.info = info;
}
public Book() {
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getInfo() {
return info;
}
public void setInfo(String info) {
this.info = info;
}
@Override
public String toString() {
return "Book{" +
"id=" + id +
", name='" + name + '\'' +
", info='" + info + '\'' +
'}';
}
}
轉集合的方式,案例
import com.google.gson.Gson;
import java.util.HashMap;
public class Demo {
public static void main(String[] args) {
//將字串轉換為集合的形式
Gson g=new Gson();
//2轉換
HashMap data=g.fromJson("{\"id\":1,\"name\":\"三國演義\",\"info\":\"三國紛爭\"}", HashMap.class);
System.out.println(data.get("name"));
}
}
class Book{
private int id;
private String name;
private String info;
public Book(int id, String name, String info) {
this.id = id;
this.name = name;
this.info = info;
}
public Book() {
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getInfo() {
return info;
}
public void setInfo(String info) {
this.info = info;
}
@Override
public String toString() {
return "Book{" +
"id=" + id +
", name='" + name + '\'' +
", info='" + info + '\'' +
'}';
}
}
在物件中新增一個陣列此時,在轉的時候會轉成ArrayList
import com.google.gson.Gson;
import java.util.HashMap;
import java.util.List;
public class Demo {
public static void main(String[] args) {
//將字串轉換為集合的形式
Gson g=new Gson();
//2轉換 {"id":1,"name":"三國演義","info":"三國紛爭,","page":["床前明月光","疑是地上霜"]}
HashMap data=g.fromJson("{\"id\":1,\"name\":\"三國演義\",\"info\":\"三國紛爭,\",\"page\":[\"床前明月光\",\"疑是地上霜\"]}", HashMap.class);
System.out.println(data.get("page"));
System.out.println(data.get("page").getClass());
List page= (List) data.get("page");
System.out.println(page.get(1));
}
}
class Book{
private int id;
private String name;
private String info;
public Book(int id, String name, String info) {
this.id = id;
this.name = name;
this.info = info;
}
public Book() {
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getInfo() {
return info;
}
public void setInfo(String info) {
this.info = info;
}
@Override
public String toString() {
return "Book{" +
"id=" + id +
", name='" + name + '\'' +
", info='" + info + '\'' +
'}';
}
}
使用FastJson
轉換為字串,再由字串轉換為物件
import com.alibaba.fastjson.JSON;
public class Demo {
public static void main(String[] args) {
//FastJson 的使用
Book b=new Book(10,"水滸傳","英雄好漢");
String json= JSON.toJSONString(b);
System.out.println(json);
//轉換成物件
JSON.parseObject("{\"id\":10,\"info\":\"英雄好漢\",\"name\":\"水滸傳\"}",Book.class);
System.out.println(b.getName());
}
}
class Book{
private int id;
private String name;
private String info;
public Book(int id, String name, String info) {
this.id = id;
this.name = name;
this.info = info;
}
public Book() {
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getInfo() {
return info;
}
public void setInfo(String info) {
this.info = info;
}
@Override
public String toString() {
return "Book{" +
"id=" + id +
", name='" + name + '\'' +
", info='" + info + '\'' +
'}';
}
}
把陣列轉換為集合
import com.alibaba.fastjson.JSON;
import java.util.List;
public class Demo {
public static void main(String[] args) {
//FastJson 的使用
//轉換為集合 ["123", "456" ,"789"]
List string=JSON.parseArray(" [\"123\", \"456\" ,\"789\"]",String.class);
System.out.println(string.get(1));
}
}
相關文章
- java將物件轉為json的方式Java物件JSON
- C#解析json的幾種方式C#JSON
- Flutter 三種JSON解析方式FlutterJSON
- Flutter 解析JSON 三種方式FlutterJSON
- java json格式化的兩種方式JavaJSON
- C#中處理JSON資料的方式C#JSON
- JSON簡介(java中的json庫使用)JSONJava
- json-server的使用JSONServer
- JSON 使用JSON
- flask返回資料的幾種方式(字串,json,元祖)Flask字串JSON
- spring mvc 返回json資料的四種方式SpringMVCJSON
- 查詢 JSON 資料結構的 8 種方式JSON資料結構
- 查詢json資料結構的8種方式JSON資料結構
- 用物件導向的方式操作 JSON 甚至還能做四則運算 JSON 庫物件JSON
- JSON.stringify 的使用JSON
- JSON資料格式的使用JSON
- Flutter工具:Dart中幾種常用的Json轉Object方式FlutterDartJSONObject
- JSON-lib的api的使用JSONAPI
- 使用js語文json字串透過get方式傳值,然後用request接收JSON字串
- 使用 JSON 協議的 gRPCJSON協議RPC
- java中json的使用方法JavaJSON
- Newtonsoft.Json的使用JSON
- go語言json的使用技巧GoJSON
- JSON在Python中的使用JSONPython
- Golang 中使用 JSON 的小技巧GolangJSON
- 關於JSON的簡單使用JSON
- restful介面Map接收引數的兩種方式(x-www-form-urlencoded方式和JSON)RESTORMJSON
- PHP與Curl採用的GET,POST,JSON方式請求APIPHPJSONAPI
- json-handle使用JSON
- mysql-json使用MySqlJSON
- 【JSON解析】淺談JSONObject的使用JSONObject
- Newtonsoft.Json的使用整理JSON
- MySQL中JSON欄位的使用技巧MySqlJSON
- MySQL 中 JSON 欄位的使用技巧MySqlJSON
- 說點JSON使用的注意事項JSON
- jQuery的ajax和json使用例項jQueryJSON
- Flutter json解析json_serializable的使用及自動化生成模板FlutterJSON
- 關於json格式化輸出json.MarshalIndent()的使用JSON