JS操作JSON总结

本文详细介绍了JSON的基本概念、结构及JavaScript中JSON的操作方法。包括JSON对象与数组的定义、JSON字符串与对象间的转换,以及如何读写JSON数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JSON详解    http://baike.baidu.com/view/136475.htm

 

JSON(JavaScriptObject Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式。同时,JSON是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON数据不须要任何特殊的 API 或工具包。

   本文主要是对JS操作JSON的要领做下总结。

   在JSON中,有两种结构:对象和数组

1.     对象:

一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间运用 “,”(逗号)分隔。 名称用引号括起来;值如果是字符串则必须用引号,数值型则不须要。

对象结构以”{”大括号开始,以”}”大括号结束。中间部分由0或多个以”,”分隔的”key(关键字)/value(值)”对构成,关键字和值之间以”:”分隔,语法结构如代码:

{

    key1:value1,

    key2:value2,

    ...

}

其中关键字是字符串,而值可以是字符串,数值,true,false,null,对象或数组.

例如:

varo={"xlid":"cxh","xldigitid":123456,"topscore":2000,"topplaytime":"2009-08-20"};

 

2.     数组

数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间运用 “,”(逗号)分隔。

   或

数组结构以”[”开始,”]”结束。中间由0或多个以”,”分隔的值列表组成,语法结构如代码。

[

    {

        key1:value1,

        key2:value2

    },

    {

         key3:value3,

         key4:value4  

    }

]

例如:

   var jsonranklist=[{"xlid":"cxh","xldigitid":123456,"topscore":2000,"topplaytime":"2009-08-20"},{"xlid":"zd","xldigitid":123456,"topscore":1500,"topplaytime":"2009-11-20"}];

 

 

   为了方便地处理JSON数据,JSON提供了json.js包,下载地址:http://www.json.org/json.js

   在数据传输流程中,json是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之间的相互转换是关键。

认识JSON字符串

之前我一直有个困惑,分不清普通字符串,json字符串和json对象的区别。经过一番研究终于给弄明白了。比如在js中。

字符串:这个很好解释,指使用“”双引号或’’单引号包括的字符。例如:var comStr = 'this is string';
json字符串:指的是符合json格式要求的js字符串。例如:var jsonStr ="{StudentID:'100',Name:'tmac',Hometown:'usa'}";
json对象:指符合json格式要求的js对象。例如:var jsonObj = { StudentID:"100", Name: "tmac", Hometown: "usa" };

   JSON字符串:

   var str1 = '{ "name": "cxh", "sex":"man" }';

   JSON对象:

   var str2 = { "name": "cxh", "sex":"man" };

 

在JS中如何使用JSON

JSON是JS的一个子集,所以可以在JS中轻松地读,写JSON。读和写JSON都有两种方法,分别是利用”.”操作符和“[key]”的方式。
我们首先定义一个JSON对象,代码如下。

var obj = {

            1: "value1",

            "2": "value2",

            count: 3,

            person: [ //数组结构JSON对象,可以嵌套使用

                        {

                            id: 1,

                            name: "张三"

                        },

                        {

                            id: 2,

                            name: "李四"

                        }

                   ],

            object: { //对象结构JSON对象

                id: 1,

                msg: "对象里的对象"   

            }

        };

1,从JSON中读数据

functionReadJSON() {

            alert(obj.1); //会报语法错误,可以用alert(obj["1"]);说明数字最好不要做关键字

            alert(obj.2); //同上

 

            alert(obj.person[0].name); //或者alert(obj.person[0]["name"])

            alert(obj.object.msg); //或者alert(obj.object["msg"])

        }

 

   一、JSON字符串转换为JSON对象

   要运用上面的str1,必须运用下面的要领先转化为JSON对象:

   //由JSON字符串转换为JSON对象

   var obj = eval('(' + str + ')');

或者

   var obj = str.parseJSON(); //由JSON字符串转换为JSON对象

   或者

   var obj = JSON.parse(str); //由JSON字符串转换为JSON对象

   然后,就可以这样读取:

   Alert(obj.name);

   Alert(obj.sex);

   特别留心:如果obj本来就是一个JSON对象,那么运用 eval()函数转换后(哪怕是多次转换)还是JSON对象,但是运用 parseJSON()函数处理后会有疑问(抛出语法异常)。

   二、可以运用 toJSONString()或者全局要领 JSON.stringify()将JSON对象转化为JSON字符串。

   例如:

   var last=obj.toJSONString(); //将JSON对象转化为JSON字符

   或者

   var last=JSON.stringify(obj); //将JSON对象转化为JSON字符

   alert(last);

   留心:

   上面的多个要领中,除了eval()函数是js自带的之外,其他的多个要领都来自json.js包。新版本的 JSON 修改了 API,将 JSON.stringify() 和 JSON.parse() 两个要领都注入到了 Javascript 的内建对象里面,前者变成了 Object.toJSONString(),而后者变成了 String.parseJSON()。如果提示找不到toJSONString()和parseJSON()要领,则说明您的json包版本太低。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值