JSON数据格式理解学习笔记

2019-11-20 作者:计算机教程   |   浏览(115)

        oCar.color = "blue";

document.writeln(myData '<br><br>');

1.5 JSON 编码和解码

//当安全比较重要的时候使用JSON解析就好一些。JSON解析只会识别JSON文本并且它更安全,下面调用json的parse函数对文本数据转换生成json数据结构
var myData = JSON.parse(jsontext);

<comments>
<comment>
<id>1</id>
<author>someone1</author>
<url>http://someone1.x2design.net&lt;/url&gt;
<content>hello</content>
</comment>
<comment>
<id>2</id>
<author>someone2</author>
<url>http://someone2.x2design.net&lt;/url&gt;
<content>someone1</content>
</comment>
<comment>
<id>3</id>
<author>someone3</author>
<url>http://someone3.x2design.net&lt;/url&gt;
<content>hello</content>
</comment>
</comments>

官方网站地址:http://www.json.org/json-zh.html
json2.js 脚本之家下载地址

var persons=jsonObj2.persons;
var str="";

<script type="text/javascript" src="json2.js"></script>
<script>
//直接声明json数据结构
var myJSONObject = {"bindings": [
{"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"},
{"ircEvent": "PRIVMSG", "method": "deleteURI", "regex": "^delete.*"},
{"ircEvent": "PRIVMSG", "method": "randomURI", "regex": "^random.*"}
]
};
//声明字符串,可对比一下json文本与我们正常文本的区别
var normalstring='[{persons:[{name:"jordan",sex:"m",age:"40"}, {name:"bryant",sex:"m",age:"28"}, {name:"McGrady",sex:"m",age:"27"} ]}]';
var jsontext='[{"persons":[{"name":"jordan","sex":"m","age":"40"}, {"name":"bryant","sex":"m","age":"28"}, {"name":"McGrady","sex":"m","age":"27"} ]}]';

1.3 混合字面量

//下面是对json对象的增删查改操作

复制代码

var jsonObj2={persons:[{name:"jordan",sex:"m",age:"40"}, {name:"bryant",sex:"m",age:"28"}, {name:"McGrady",sex:"m",age:"27"} ]};

使用XML表示:

//声明json对象

复制代码

http://www.bkjia.com/Javascript/318289.htmlwww.bkjia.comtruehttp://www.bkjia.com/Javascript/318289.htmlTechArticle官方网站地址:http://www.json.org/json-zh.html json2.js 脚本之家下载地址 复制代码 代码如下: script type="text/javascript" src="json2.js"/script script //直接声...

复制代码

var persons=jsonObj2.persons;
var str="";

 代码如下

var person={name:"yaoMing",sex:"m",age:"26"};
//以下为json对象的操作,去掉注释可以查看操作结果
//jsonObj2.persons.push(person);//数组最后加一条记录
//jsonObj2.persons.pop();//删除最后一项
//jsonObj2.persons.shift();//删除第一项
jsonObj2.persons.unshift(person);//数组最前面加一条记录 只要适合Javascript的方法都是可以用在JSON对象的数组中的!所以还有另外的方法splice( )进行crud操作! //删除
//jsonObj2.persons.splice(0,2);//开始位置,删除个数
//替换不删除
var self={name:"tom",sex:"m",age:"24"};
var brother={name:"Mike",sex:"m",age:"29"};
jsonObj2.persons.splice(1,0,self,brother,self);//开始位置,删除个数,插入对象
//替换并删除
//jsonObj2.persons.splice(0,1,self,brother);//开始位置,删除个数,插入对象

       oCar.year = 1995;

//调用eval函数转换为json对象,
var myE = eval(normalstring);
document.writeln(myE '<br><br>');
//将json对象转换为字符串
var text = JSON.stringify(myE);
//对比转换后的json文本与声明的文本区别
document.writeln('转换后的json文本:' text '<br><br>声明的json格式文本 ' jsontext '<br><br>声明的普通格式文本 ' normalstring '<br><br>');

       oCar.drivers = new Array("Penny", "Dan" , "Kris");

复制代码 代码如下:

 代码如下

for(var i=0;i<persons.length;i ){ var cur_person=persons[i]; str =cur_person.name "'sex is " cur_person.sex " and age is " cur_person.age "<br><br>"; }
document.writeln(str);
//转换为json文本
var myjsonobj = JSON.stringify(jsonObj2);
document.writeln(myjsonobj);
</script>

        对象字面量,是通过两个花括号来定义的。在花括号内可以放置任意数量的“名称-值”对,定义格 式字符串值”。除了最后一行外,每个“名称-值”对后必须有一个逗号(这与Perl 中的联合数组的定义有些类似)。例如:

 代码如下

使用JSON表示:

//json实例
var str=’{"firstName": "Bret", "lastName":"McLaughlin"}’;
var j= eval(’(’ str ’)’);
//for(var key in j){ alert(j[key]); } //遍历读名
//for(var key in j){ alert(j[key]); }//遍历读值
//alert(j.firstName); //读指定名的值

例1

1. 什么是 JSON

       作为 JSON 资源的一部分,Corockford 开发了一个能够实现 JSON 和Javascript 对象直接解码和编码的工具。这个工具的源程序可以在 www.crockford.com/JSON/json.js 中下载。

很容易发现,许多冗余的信息不见了。由于不需要有与开始标签(opening tag)匹配的结束标签(closing tag),因此传送相同的信息所需的字节数大大降低了。创始人 Corockford 将其称之为“XML 的减肥方案”)。

       同时,它也提供了一种将 Javascript 对象转换为 JSON 字符串(数据传输时使用的)的工具(在Javascript 中没有内建这种功能支持)。你要做的只是将对象传入到 JSON.Stringify() 方法。请看下面的例子:

{comments:[
{
id:1,
author:"someone1",
url:"http://someone1.x2design.net",
content:"hello"
},
{
id:2,
author:"someone2",
url:"http://someone2.x2design.net",
content:"hello"
},
{
id:3,
author:"someone3",
url:"http://someone3.x2design.net",
content:"hello"
}
]};

{"doors" : 4, "color" : "blue", "year" :1995, "drivers" : ["Penny", "Dan" , "Kris"]www.2003.com,}

JSON 优势与缺点

复制代码

 代码如下

Json的规格非常简单,只用一个页面几百个字就能说清楚,而且Douglas Crockford声称这个规格永远不必升级,因为该规定的都规定了。

               "paidFor" : true

 代码如下

SON 格式的数据与 XML 相比,缺点是对于外行人可读性更差。当然,有一种观点是,数据交换格式不是用肉眼观察的。如果是通过工具对来回传送的数据进行创建和解析,那么的确没有理 由要求数据必须使人们易于阅读。问题的实质在于:存在可用的 JSON 工具。

 代码如下

json数据格式实例

1.2 对象字面量

复制代码

var jsonObj2={persons:[{name:"jordan",sex:"m",age:"40"}, {name:"bryant",sex:"m",age:"28"}, {name:"McGrady",sex:"m",age:"27"} ]};

var aNames=["hello", 12, true , null];

复制代码

var person={name:"yaoMing",sex:"m",age:"26"};
//以下为json对象的操作,去掉注释可以查看操作结果
//jsonObj2.persons.push(person);//数组最后加一条记录
//jsonObj2.persons.pop();//删除最后一项
//jsonObj2.persons.shift();//删除第一项
jsonObj2.persons.unshift(person);//数组最前面加一条记录 只要适合Javascript的方法都是可以用在JSON对象的数组中的!所以还有另外的方法splice( )进行crud操作! //删除
//jsonObj2.persons.splice(0,2);//开始位置,删除个数
//替换不删除
var self={name:"tom",sex:"m",age:"24"};
var brother={name:"Mike",sex:"m",age:"29"};
jsonObj2.persons.splice(1,0,self,brother,self);//开始位置,删除个数,插入对象
//替换并删除
//jsonObj2.persons.splice(0,1,self,brother);//开始位置,删除个数,插入对象

    3) 并列数据的集合(数组)用方括号("[]")表示。

数组字面量,是用一对方括号括起一组用逗号隔开的 javascript 值,例如:

var data=’[{k:"名称1",v:"共10条"},{k:"名称2",v:""}]’;
var json=eval(’(’ data ’)’);//转换为json对象
//alert(json.length);//输出root的子对象数量
//if (json[1].v.length>1){alert(dataObj[1].v);}
//alert(json[1].k); //读指定名的值
//for(i=0;i<json.length;i ) {alert(json.v)}//遍历
//for(var key in json){ alert(json[key].v); }//遍历
//var arr = new Array();
//for(var key in json){arr.push(json[key].k); }//拼接
//alert(arr.join(’&’));

               "color": "red",      

JSON看上去很美,是不是就能完全取代XML呢?事实并非如此,而原因就在于XML的优势:通用性。要使服务器端产生语法合格的javascript代 码并不是很容易做到的,这主要发生在比较庞大的系统,服务器端和客户端有不同的开发人员。它们必须协商对象的格式,这很容易造成错误。

              "doors" : 4,

本文由www.2003.com发布于计算机教程,转载请注明出处:JSON数据格式理解学习笔记

关键词: