JSON的学习与使用

我们在进行软件开发的过程中,服务与服务之间会进行相互的调用。在数据进行传输前,我们通常会将数据转化成 JSON 的格式进行传输,比如 ajax 调用请求,接收传过来的 JSON 数据,javascript 就可以对传过来的数据进行直接的调用。

本篇文章会讲解以下的内容:

什么是 JSON---what

为什么有 JSON---why

如何使用 JSON---How

JSON 的数据结构

Json 在 javascript 中的使用

Json 在 Java 中的使用

什么是 JSON

JSON 全拼 Java Script Object Notation,JavaScript 对象表示法。是一种由道格拉斯·克罗克福特构想和设计、轻量级的数据交换语言,该语言以易于让人阅读的文字为基础,用来传输由属性值或者序列性的值组成的数据对象。尽管 JSON 是 JavaScript 的子集,但是 JSON 是独立于语言的文本格式。

JSON 数据格式与语言无关。即便它源自 JavaScript,但很多编程语言都支持 JSON 格式数据的生成和解析,例如在 Java 中就有 fastjson、gson 等工具类对 JSON 进行操作。

小结

JSON 是数据交换语言。

JSON 是独立于任何程序语言的文本格式。

为什么有 JSON

提到这里,就不得不和 XML 进行比较了。XML 也是可以作为跨平台的数据交换格式。但是为什么我们大多用 JSON,而不用 XML 呢?有下面几点原因:

javaScript 原生支持 JSON,解析速度更快。而 XML 解析成 DOM 对象的时候,浏览器会有差异。

对于 AJAX 应用程序来说,JSON 比 XML 更快更易使用。

使用 XML :读取 XML 文档,使用 XML DOM 循环遍历文档,将读取值存入变量。

使用 JSON:读取 JSON 字符串,JSON.parse 解析 JSON 字符串。

JSON的学习与使用

综上,我们更倾向于选择 JSON 来进行数据交换。

如何使用 JSON JSON 的数据结构

对象

JSON 对象使用在 大括号“{}”中书写,对象可以有多个键值对(key/value)。

key 必须是字符串,value 可以是合法的 JSON 数据类型(字符串、数字、对象、数组、布尔值或null)

key 和 value 中使用冒号“:”分割,键值对之间用逗号“,”分割。

{"name":"关注公众号:小李不秃","age":18,"money":null}

 

数组

JSON 数组在中括号“[]”中书写。JSON 中数组值必须是合法的 JSON 数据类型。

[    
    {"name":"张三"},
    {"name":"李四"),
    {"name":"王五"}
]
Json 在 javaScript 中的使用 操作 Json 对象

访问对象值

可以使用点号“.”来访问对象的值,也可以使用中括号“[]”来访问对象的值。

var data, x;
data = {"name":"xiaoli""area":"china""money":null};
x = data.name; #或者myObj["name"]

运行结果:xiaoli

 

循环对象

使用 for-in 来循环对象的属性

var data, x;
data = {"name":"xiaoli""area":"china""money":null};
for(x in data){
    console.log(x + ":" + data[x]);
}

运行结果:
name:xiaoli
area:china 
money:null

 

修改值

可以使用点号“.”来修改 JSON 对象的值,也可以使用中括号“[]”修改 JSON 对象的值。

data.money = 100;
data["money"] = 100;

 

删除值

通过 delete 关键字来删除 JSON 对象的属性。

delete data.money;
delete data["money"]
操作 JSON 数组

访问 JSON 数组值

通过索引值来访问数组。

var myObj, x;
myObj = {
    "name":"网站",
    "num":3,
    "sites":[ "Google""Runoob""Taobao" ]
}
x = myObj.sites[0];

运行结果:Google

 

循环数组

通过 for-in 来访问数组。

var myObj, i, x = "";
myObj = {
    "name":"网站",
    "num":3,
    "sites":[ "Google""Runoob""Taobao" ]
};

for (i in myObj.sites) {
    x += myObj.sites[i] + "<br>";
}

运行结果:

Google
Runoob
Taobao

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyzfjp.html