首页 > 编程知识 正文

JSON是什么意思,json对象是什么

时间:2023-05-05 02:30:56 阅读:149914 作者:177

1 .背景介绍什么是JSON

JSON(JavaScriptobjectnotation,JS对象标记)是一种轻量级数据交换格式。 它基于ecmascript(w3c制定的js规范)的子集,以完全独立于编程语言的文本格式存储和表示数据。 简洁清晰的分层结构使JSON成为了理想的数据交换语言。 人容易读写,同时也容易分析和生成机器,有效地提高网络传输效率。 ——百度百科

数据传输是我们敲击代码时经常遇到的场景,前后进行交互。 给数据统一的格式有助于数据的创建和分析。

json是一种广泛用于与后端进行数据交换的数据格式。

JSON的诞生

JSON是JavaScript Object Notation,JS对象标记,是一种数据交换格式。 在JSON出现之前,大家都在用XML传递数据。 XML是纯文本格式,因此非常适合在网络上交换数据。 XML本身并不复杂。 但是,添加DTD、XSD、XPath、XSLT等复杂的规范,普通软件开发人员一接触XML就会变大,最终发现即使努力研究了好几个月,XML的规范也未必清晰。

终于,在2002年的一天,哈德福克(Douglas crockford )陷入困境的同时,为了拯救被某大型软件企业长期愚弄的软件工程师,他推出了名为JSON的轻量级数据交换表单

因为JSON非常简单,所以很快就风靡了Web世界,成为了ECMA标准。 大多数编程语言都有解析JSON的库,但JavaScript具有内置的JSON分析,因此可以直接在JavaScript中使用JSON。 将任何JavaScript对象序列化为JSON格式的字符串,以便可以通过网络将其传递到其他计算机。 收到JSON格式的字符串后,只需将其反序列化为JavaScript对象,即可直接在JavaScript中使用该对象。

转义

当我们调用jsonp接口或调用js文件时,如果文件的编码不同,就会出现乱码问题。 如果你的文件中出现了非英语字符,如果调用时文件的编码不一致,也会出现乱码。

所以统一并格式化数据。

JSON是适用于Ajax APP应用的有效格式,因为它是用于在JavaScript对象和字符串值之间快速转换JSON的语法

JSON是提供stringify和parse方法的内置对象

stringify将js对象转换为符合json标准的字符串

parse将符合json标准的字符串转换为js对象

2 .知识分析JSON对值的类型和格式有严格的规定

复杂类型的值只能是数组或对象,而不是函数、正则表达式对象或日期对象。

简单类型的值只有四种:字符串、数字(必须用十进制表示)、布尔值和null。 不能使用NaN、Infinity、-Infinity和undefined。

字符串必须用双引号表示,不能使用单引号。

对象的键名必须用双引号引起来。

数组或对象的最后一个成员后面不能包含逗号。

在PS:中,必须注意null数组和null对象都是有效的JSON值,null本身也是有效的JSON值。

JSON 的语法规则

Jon的语法规则非常简单,可以说是“优雅完美”。 总结如下。

数组(Array )用方括号([] )表示。

对象(Object )用大括号()、)和()表示。

“名称/值对”(name/value )与数组和对象合并。

名称(name )用双引号括起来,值)包括字符串、数字、布尔值、null、对象和数组。

用逗号(,)分隔排列的数据

实例

Jon数据的写入格式为名称/值对。

名称/值对组合中的名称写在前面,写在双引号中,值对写在后面,中间用冒号分隔。

其中,值可以是数字(整数或浮点数)、字符串(用双引号括起来)、布尔值(true或false )、数组(用方括号括起来)、对象(用大括号括起来)或null

varjson={'password':123456,' name':'myname ',' Booleans':true,' array ' 3360 [ x,y,z],'。

或者嵌套使用

转义概述

为什么需要转义? js通过我们使用的js对象进行处理,但与后端数据交换时发送规定的json格式的字符串。 因此,在向后端发送或接收数据时,必须对其进行转义

{name:'myname ',password:123456}

' { ' name ' : '我的名字',' password':1234

56}"

其中json字符串转js对象,调用parse方法:

js对象 = JSON.parse(json字符串);

js对象转json字符串,调用stringify方法:

json字符串 = JSON.stringify(js对象);

3.常见问题

在json字符串转换成对象,还有eval_r('('+json字符串+')')这个方法,但是在对目标数据进行读取时,可能会出现一些意外的错误:

 

4.解决方案

原因:eval_r获取的json对象的值中,如果有执行代码,也将照样执行!所以若不能保证数据的安全性,不要使用eval_r方法进行转义。

 

5.编码实战

下面是一个简单的json数据发送应用,有兴趣可以阅读一下:

 

 

6.扩展思考

我们常看到

{name:"myname",password:123456}

{"name":"myname","password":123456}

这样两种格式,即js对象和json,然而js对象和json有什么不一样的地方?

很多人搞不清楚 JSON 和 Js 对象的关系,甚至连谁是谁都不清楚。其实,可以这么理解:

JSON 是 JS 对象的字符串表示法,它使用文本表示一个 JS 对象的信息,本质是一个字符串。

var obj = {a: 'Hello', b: 'World'}; //这是一个对象,注意键名也是可以使用引号包裹的

var json = '{"a": "Hello", "b": "World"}'; //这是一个 JSON 字符串,本质是一个字符串

 

7.参考文献

参考一:JSON官方文网

参考二:Json对象和Json字符串的区别

参考三:json属性名必须加引号的讨论

参考四:json怎么理解

8.更多讨论

1、XML是什么?

XML与Access,Oracle和SQL Server等数据库不同,数据库提供了更强有力的数据存储和分析能力,例如:数据索引、排序、查找、相关一致性等,XML的宗旨传输数据的,而与其同属标准通用标记语言的HTML主要用于显示数据。事实上XML与其他数据表现形式最大的不同是:他极其简单。这是一个看上去有点琐细的优点,但正是这点使XML与众不同。

2、向后台传输数据要用什么格式?

json字符串格式,如果是一个对象要先用JSON.stringify()转义,转义成为字符串才能将数据传给后端。

3、后端传过来的字符串数据要怎样才能转义成为一个对象?

用JSON.parse()方法转义。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。