女人夜夜春高潮爽A∨片传媒_国产精品VIDEOS麻豆_在线精品亚洲一区二区三区_亚洲熟妇无码av

編程代碼
新聞詳情

JSON基礎知識

發(fa)布時(shi)間:2021-05-18 08:24:14 瀏(liu)覽次數:3845

JSON概念(nian)

JSON全名稱是JavaScript Object Notation,即JavaScript對(dui)象(xiang)表示(shi)法。

Java的對象表示:

Person p = new Person();

p.setName("張三(san)");

p.setAge(23);

p.setGender("男");

JavaScript的對象表示:

var p = {"name":"張(zhang)三","age":23,"gender":"男"};

JSON介紹:

  • json現在(zai)多(duo)用(yong)于存儲(chu)和交換文本信息的語(yu)法
  • 進(jin)行數據的傳輸
  • JSON 比 XML 更(geng)小(xiao)、更(geng)快(kuai),更(geng)易解析。

JSON語(yu)法(fa)

JSON語法基本規(gui)則(ze)

1、數據在鍵(jian)/值(zhi)對(dui)中:JSON數據由鍵(jian)值(zhi)對(dui)構成(cheng)。

  • 鍵可以用引號(單雙引號都行)引起來,也可以不使用引號引起來。
  • 值的取值類型有:數字(整數或浮點數)、字符串(用雙引號引起來)、布爾值(true或false)、數組(在方括號中)、對象(在花括號中)、null。

# 值是數字類型

{age: 10, score: 78.5}

# 值是字符串類型

{name: "張(zhang)三", sex: "m"}

# 值是布爾值類型

{flag: true}

# 值是數組類型

{names: ["zhangsan", "lisi", "wangwu"]}

{students: [{name: "zhangsan"}, {name: "lisi"}]}

# 值是對象類型

{student: {name: "zhangsan", age: 18, flag: true}}

# 值是null類型

{value: null}

2、數據(ju)由(you)逗號分(fen)(fen)隔:多個鍵值(zhi)對用逗號進行分(fen)(fen)隔

{key1: value1, key2: value2, key3: value3, ...}

3、花括號保存(cun)對象:使(shi)用{}定(ding)義json格(ge)式的對象,又(you)可以(yi)嵌套(tao)其他數據類型的值(zhi)。

{student: {name: "zhangsan", hobbies: ["play", "read", "listen"]}}

4、方括號(hao)保存數組:[1,2,3,4,5],又可(ke)以嵌套其他數據類(lei)型的值。

[{name1:"zhangsan"},{name2:"lisi"}]

[1,2,3,4,5,6]

讀取JSON數據

讀取通常是指在前端(duan)使用(yong)JavaScript讀取JSON格式(shi)數據(ju),后(hou)端(duan)Java不(bu)采用(yong)此語法:

# 讀取對象類型中指定(ding)鍵(jian)的值(zhi)

json對象.鍵名

json對象["鍵(jian)名"]

# 讀取JSON數(shu)組中的值

數組對象[索引]

# 遍歷對象

for (鍵名 in 對象) {

# key為(wei)(wei)鍵名;對象(xiang)[key]為(wei)(wei)鍵值(zhi)

}

# 遍歷數組

for (var i=0; i<數組.length; i++) {

# 數(shu)(shu)組[i]獲取數(shu)(shu)組的(de)值

}

實例:

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>json遍歷</title>

</head>

<body>

<script>

// 遍歷對象

// 鍵(jian)名可以不加(jia)引號,也可以加(jia)單(dan)引號或雙(shuang)引號

var person1 = {name: "張三", age: 23, sex: "m"};

var person2 = {"name": "張三", "age": 23, "sex": "m"};

var person3 = {'name': &quot;張三(san)", 'age': 23, 'sex': "m"};

// 獲取person對象中所有(you)的(de)鍵和值(zhi)

// for in 循環

for (key in person1) {

// 無法使用(yong)person1.key,因為這樣相當于person1."name"

console.log(key, person1[key]);

}


// 遍歷普通數組

var arr=["唐僧","孫(sun)悟(wu)空&quot;,"豬八戒&quot;,"沙僧"];

for (var i=0; i < arr.length; i++)

{

console.log(arr[i]);

}


// 遍歷對象數組

var ps = [{"name&quot;: "張(zhang)三", "age": 23, "gender": true},

{"name": "李四&quot;, &quot;age": 24, "gender": true},

{"name&quot;: "王五", "age": 25, "gender": false}];

for (var i = 0; i < ps.length; i++) {

var p = ps[i];

for (key in p) {

console.log(key + ":" + p[key]);

}

}

</script>

</body>

</html>

JSON數據(ju)(ju)與Java數據(ju)(ju)的相(xiang)互轉換

概(gai)述

要想實現JSON數據與Java數據的相互轉換,需要JSON解(jie)析器(qi),即能夠解(jie)析JSON格(ge)式(shi)數據的jar包。

常見的解析器:Jsonlib,Gson,fastjson,jackson。

本節中使(shi)用jackson,因為spring內(nei)置它,為以(yi)后打(da)下(xia)基礎。

JSON轉為Java對(dui)象(xiang)

將JSON轉換為Java對象的步驟如下:

1. 導(dao)入jackson的相關jar包

2. 創(chuang)建Jackson核(he)心(xin)對象 ObjectMapper

3. 調(diao)用ObjectMapper的相關方法進行(xing)轉換:readValue(json字符(fu)串數據, Class)

第一(yi)步:導入相關jar包(注意,版(ban)本(ben)一(yi)定要匹配,三個版(ban)本(ben)應該一(yi)致,否則可能發生異常(chang))

尷尬!看完京東大佬的這份JSON手冊,才知道自己是井底之蛙

第二步:轉(zhuan)換(huan)對象

public class Json2Java {

public static void main(String[] args) throws IOException {

ObjectMapper mapper=new ObjectMapper();

String json="{\"username\":\"李四\",\"password\":\"123456\&quot;}";

User user = mapper.readValue(json, User.class);

System.out.println(user);

}

}

class User{

private String username;

private String password;


public User() {

}


public String getUsername() {

return username;

}


public void setUsername(String username) {

this.username = username;

}


public String getPassword() {

return password;

}


在線(xian)客服
客服(fu)電話
  • 0755-23712116
  • 13310869691