Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 什么是json,你能向新手解释一下吗?_Javascript_Json - Fatal编程技术网

Javascript 什么是json,你能向新手解释一下吗?

Javascript 什么是json,你能向新手解释一下吗?,javascript,json,Javascript,Json,你能用最简单的话解释一下吗 最好使用演示脚本。JSON是创建数据结构的Javascript源代码。它基本上是一种用文本描述对象的方法,一种基于文本的序列化格式。然而,它的美妙之处在于它也是普通的JavaScript。JavaScript的语法允许以非常简洁的格式初始化对象,这种格式也很容易在其他语言中生成/解析 因此,您可以在JavaScript中获得“内置”反序列化(即,您可以将文本解释为code1),而无需额外的库,其他平台可以创建它,通常是使用库。(通常,web服务器将生成JSON供浏览器

你能用最简单的话解释一下吗


最好使用演示脚本。

JSON是创建数据结构的Javascript源代码。

它基本上是一种用文本描述对象的方法,一种基于文本的序列化格式。然而,它的美妙之处在于它也是普通的JavaScript。JavaScript的语法允许以非常简洁的格式初始化对象,这种格式也很容易在其他语言中生成/解析

因此,您可以在JavaScript中获得“内置”反序列化(即,您可以将文本解释为code1),而无需额外的库,其他平台可以创建它,通常是使用库。(通常,web服务器将生成JSON供浏览器解释。)



1当然,这假设您完全信任您的数据源—从安全角度来看,以代码形式执行任意文本是非常危险的。

JSON是声明数据结构的Javascript源代码,通常由web服务器发送到浏览器。浏览器通过普通的javascript解析器运行代码,并弹出一个数据结构

Javascript声明可能如下所示:

var myvar = {"column1": "valuie1"};
            ^^^^^^^^^^^^^^^^^^^^^^
带^^^下划线的部分称为JSON

所以在早期,一些Javascript会从服务器抓取一个文本并像这样解析它:

var myvar = eval('(' + textfromserver + ')');
由于eval是危险的,因此现在更常用它,如:

var myObject = JSON.parse(myJSONtext);

这是一种黑客行为,许多人认为它很有用,于是将其作为标准。请参阅以获得更全面的解释。

我将尽量使其简单化。如果您对XML很熟悉的话,原则上它与XML类似,因为它以一种易于阅读的方式为人和程序存储数据。它被标记为“数据交换格式”,因为您将看到它被用作在一个程序和另一个程序之间移动数据的中介

例如,您可能有某些数据库,希望其他人从中获取信息并在他们自己的程序中使用。您可以通过编写某种JSON层来限制他们的访问,而不是让他们完全访问数据库。然后,人们可以像使用RSS提要一样访问JSON。现实生活中的例子:雅虎为他们的搜索引擎提供了一个JSON层,因此人们可以编写桌面小部件(或其他任何东西),运行雅虎搜索,并将结果直接发送到桌面小部件


使用JSON之类的东西的丑陋替代方法可能是让程序获取网页的HTML内容,并以某种方式找到所需的信息。(如果网站的HTML布局发生变化,您必须更改程序。)

JSON是一种共享数据的方式(通常在浏览器和服务器之间)

JavaScript允许以两种方式存储值集合:

//arrays:
[value, value, value]
//objects:
{key:value, key:value, key:value}
在某种程度上,一位被称为Doug的大师认识到,将数据发送到像对象一样已经设置好的JavaScript通常是最有效的。[而不是PHP发送逗号分隔的字符串、post数据、XML甚至HTML,所有这些都必须通过JavaScript进行艰苦的解析]

所以他把这个想法称为JSON,为它编写了一个规范,标准就诞生了

例如,假设您的login.php脚本应该返回用户名、帖子总数和注册后的天数:

//XML
"<xml..><details>\
    <user>Jim</user><posts>239</posts><since>Jan09</since>\
</details>"
//POSTData
"user=Jim&posts=239&since=Jan09"
//JSON
"{user:'Jim', posts:239, since:'Jan09'}"
编辑:

正确地指出,要成为有效的JSON,所有字符串都必须双引号。 这样做是为了防止JS在保留关键字上发出刺耳的声音(在JS中,除非引用某些单词,否则不能使用某些单词,如
class
。因此
{class:'mike'}

还应该指出,PHP 5.2+具有可用于创建或解析JSON的函数:

<?php
    $arr = array ('a'=>'ay','b'=>'bee','c'=>'cee');
    echo json_encode($arr); //outputs {"a":"ay","b":"bee","c":"cee"}
?>


只有当json有效时,
json\u decode
函数才会起作用,因此有时正确使用双引号是很重要的。

如果你想实际了解一些事情,请观看演示json的视频

JSON(Javascript对象表示法)是一种简单的数据交换格式,有助于Javascript和服务器端技术(如servlet、JSP、WCF、ASP.Net等)之间的通信

JSON的格式如下所示。下面的格式表示具有“CustomerCode”和“CustomerName”属性的“Customer”对象

![{"CustomerCode":"1001","CustomerName":"Shiv"}][2]

现在,javascript可以轻松使用这种格式,并将其转换为javascript对象。请看上图,其中我们提供了JSON到javascript变量,您可以看到如何使用“CustomerCode”和“CustomerName”属性计算javascript对象

如果你看一下web架构,它有两个部分:浏览器和服务器。在浏览器端,Javascript是最突出和最成熟的语言,而在服务器端,您有不同的技术,如JSP、ASP.NET、PHP等

因此,如果服务器端技术发出JSON格式,可以轻松地转换为javascript对象,这将真正简化多个服务器端技术和javascript语言之间的通信

JSON(JavaScript对象表示法)是一种轻量级格式,用于数据交换。它也是JavaScript对象表示法的一个子集(JavaScript中构建
对象的方式)

JSON是一种序列化的方式,它变成JavaScript代码。执行时(使用eval或其他方式),此代码创建并返回一个包含序列化数据的JavaScript对象。这是因为JavaScript允许以下语法:

var MyArray = [ 1, 2, 3, 4]; // MyArray is now an array with 4 elements
var MyObject = {
    'StringProperty' : 'Value',
    'IntProperty' : 12,
    'ArrayProperty' : [ 1, 2, 3],
    'ObjectProperty' : { 'SubObjectProperty': 'SomeValue' }
}; // MyObject is now an object with property values set.
您可以将其用于多种用途。首先,它是一种将数据从服务器后端传递到JavaScript代码的舒适方式。因此,这在AJAX中经常使用

您还可以将其用作独立的序列化机制,这比XML更简单,占用的空间更少。存在许多库,允许您为各种编程语言序列化和反序列化JSON中的对象

<
var MyArray = [ 1, 2, 3, 4]; // MyArray is now an array with 4 elements
var MyObject = {
    'StringProperty' : 'Value',
    'IntProperty' : 12,
    'ArrayProperty' : [ 1, 2, 3],
    'ObjectProperty' : { 'SubObjectProperty': 'SomeValue' }
}; // MyObject is now an object with property values set.