JSON到底是对象还是文本字符串?看完这篇文章你就彻底明白了

JSON是一段数据文本格式,以文本形式传输、存储和编写的。

先看以下引用。

维基百科:https://zh.wikipedia.org/wiki/JSON

JSON(JavaScript Object Notation,JavaScript对象表示法,读作/ˈdʒeɪsən/)是一种由道格拉斯·克罗克福特构想和设计、轻量级的数据交换语言,该语言以易于让人阅读的文字为基础,用来传输由属性值或者序列性的值组成的数据对象。尽管JSON是JavaScript的一个子集,但JSON是独立于语言的文本格式,并且采用了类似于C语言家族的一些习惯。
JSON 数据格式与语言无关。即便它源自JavaScript,但目前很多编程语言都支持 JSON 格式数据的生成和解析。JSON 的官方 MIME 类型是 application/json,文件扩展名是 .json。

百度百科:https://baike.baidu.com/item/JSON/2462549?fr=aladdin

JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

json.org:https://www.json.org/json-en.html

JSON (JavaScript Object Notation) is a lightweight data-interchange format. It is easy for humans to read and write. It is easy for machines to parse and generate. It is based on a subset of the JavaScript Programming Language Standard ECMA-262 3rd Edition - December 1999. JSON is a text format that is completely language independent but uses conventions that are familiar to programmers of the C-family of languages, including C, C++, C#, Java, JavaScript, Perl, Python, and many others. These properties make JSON an ideal data-interchange language.

JSON is built on two structures:

A collection of name/value pairs. In various languages, this is realized as an object, record, struct, dictionary, hash table, keyed list, or associative array.
An ordered list of values. In most languages, this is realized as an array, vector, list, or sequence.


以上引用都证明了,JSON是文本格式,如果文本赋值到编程语言里,就是字符串类型了。

JSON的全称是JavaScript Object Notation,大概可以翻译成JavaScript对象记法。重点在notation这个词上,JSON指的是将一个Object以文本的方式给记录下来。

JSON类似于XML,都是一段有格式的、利于人类阅读和编写的文本,数据交换格式。


下面例举几个常见的误导理解。

1.误解:在php中,json是对象。
正确解答:首先贴上两个函数的解释。
json_encode:返回字符串,包含了 value 值 JSON 形式的表示。
json_decode:接受一个 JSON 编码的字符串并且把它转换为 PHP 变量。
json_decode这个函数明确的说明了将json转换成php变量,为什么官方不说转换成json?或者json对象?再者,它的第二个参数为 TRUE 时,将返回 array 而非 object,这些都是php的数组类型。
引用维基百科的话,JSON是独立于语言的文本格式

2.误解:在js中,json是对象。
正确解答:首先贴上两个函数的在火狐开发者文档上的解释。
JSON.stringify:JSON.stringify() 方法将一个 JavaScript 值(对象或者数组)转换为一个 JSON 字符串
JSON.parse:JSON.parse() 方法用来解析JSON字符串,构造由字符串描述的JavaScript值或对象
json是js中的一个子集,他的格式,很像js中声明一个对象,如js对象的声明:
var car = {type:"porsche", model:"911", color:"white"};
这种写法只是js对象的声明。
并且他的两个函数明确的说明了JavaScript对象和json字符串的关系。


误解总结:json是一段文本格式,而「字符串」是大部分编程语言中存储文本数据的数据类型。至于怎么使用,看相应的语言。在php和js中,被解析成对象或数组。但是在其他语言不一定,它被解析成,结构(struct),字典(dictionary),哈希表(hash table)等等!

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇