Json数据格式

转载 2016年08月30日 16:13:11

JSON的全称是”JavaScript Object Notation”,意思是JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式。XML也是一种数据交换格式,为什么没有选择XML呢?因为XML虽然可以作为跨平台的数据交换格式,但是在JS(JavaScript的简写)中处理XML非常不方便,同时XML标记比数据多,增加了交换产生的流量,而JSON没有附加的任何标记,在JS中可作为对象处理,所以我们更倾向于选择JSON来交换数据。

JSON的两种结构

JSON有两种表示结构,对象和数组。
对象结构以”{”大括号开始,以”}”大括号结束。中间部分由0或多个以”,”分隔的”key(关键字)/value(值)”对构成,关键字和值之间以”:”分隔,关键字用引号括起来;值如果是字符串则必须用引号,数值型则不须要语法结构如代码。

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

{
    key1:value1,
    key2:value2,
    ...
}

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

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

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

复制代码
[
    {
        key1:value1,
        key2:value2 
    },
    {
         key3:value3,
         key4:value4   
    }
]
复制代码

认识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" };

在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中读数据

复制代码
function ReadJSON() {
            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"])
        }
复制代码

2,向JSON中写数据

比如要往JSON中增加一条数据,代码如下:

function Add() { 
            //往JSON对象中增加了一条记录
            obj.sex= "男" //或者obj["sex"]="男"
        }

增加数据后的JSON对象如图:

json01

3,修改JSON中的数据

我们现在要修改JSON中count的值,代码如下:

function Update() {
            obj.count = 10; //或obj["count"]=10
        }

修改后的JSON如图。

json02

4,删除JSON中的数据

我们现在实现从JSON中删除count这条数据,代码如下:

function Delete() {
            delete obj.count;
        }

删除后的JSON如图

json03

可以看到count已经从JSON对象中被删除了。

5,遍历JSON对象

可以使用for…in…循环来遍历JSON对象中的数据,比如我们要遍历输出obj对象的值,代码如下:

function Traversal() {
            for (var c in obj) {
                console.log(c + ":", obj[c]);
            }
        }

程序输出结果为:

json04

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

    JSON字符串:

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

    JSON对象:

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

    一、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包版本太低。



jQuery 遍历 JSON 对象

不说别的,直接贴代码:       $(document).ready(function() {         $("#Link")...
  • lizhibin3944
  • lizhibin3944
  • 2014年03月12日 14:19
  • 286

jQuery解析JSON数据对象

字符串集如下: var data="   {   root:   [   {name:'1',value:'0'},   {name:'6101',value:'西安市'},   {name...
  • zb0567
  • zb0567
  • 2014年02月17日 10:02
  • 487

JSON数据格式的解析

转自:python-Json模块【解析Json】 1,Json模块介绍 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时...
  • lishuandao
  • lishuandao
  • 2016年09月19日 15:09
  • 1337

easyui加载datagrid和treegrid的几种json数据格式

一、easyui加载datagrid的json数据格式       (1)基础的数据格式             {"total":28,"rows":[ {"productid":"FI-SW...
  • u010176097
  • u010176097
  • 2016年07月19日 19:16
  • 9977

轻量级数据格式——JSON

今天这数学实在看不下去 来换换脑子,写写前端 今天就写一个小知识JSON在很久很久以前,XML是互联网上传输数据的标准 但是大家普遍反映XML太繁琐 再后来,随着Web的发展 人们发现JSO...
  • q1056843325
  • q1056843325
  • 2016年12月01日 21:42
  • 1834

AJAX——JSON数据格式

JSON数据格式,前段时间一直听他们合作的说,但是不知道是什么,这次终于明白了,其实就是一种类似于XML的数据传输格式 。下边我从定义,语法,转换为JavaScript对象以及与XML的比较四个方面介...
  • liujiahan629629
  • liujiahan629629
  • 2013年12月15日 11:13
  • 16672

json 数据格式

JSON是 JavaScript Object Notation的简称,是一种轻量的数据表示方法。jason格式采用key:value的方式记录数据,非常直观,比XML简洁,因而大受欢迎 介绍jas...
  • alpha_xiao
  • alpha_xiao
  • 2016年09月12日 09:52
  • 384

JSON数据格式

在学习AJAX的过程中,接触了一种新的数据格式——Json数据格式,一开始不是很明白,后来通过做一个“股票”的小程序,有了些了解,下面是我的总结,希望对大家有所帮助 一,概念 (1)一种轻量级的数据交...
  • hanxuemin12345
  • hanxuemin12345
  • 2013年12月11日 21:07
  • 2107

JSON 数据格式

JSON 数据格式        JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。JSON采用完全独立于语言的文本格式,这些特性使JSON成为理...
  • qingfeng812
  • qingfeng812
  • 2014年03月20日 10:59
  • 544

【数据格式】-JSON

JSON
  • zhailihua
  • zhailihua
  • 2017年12月08日 16:44
  • 28
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Json数据格式
举报原因:
原因补充:

(最多只允许输入30个字)