您的位置:首页 > Web前端 > jquery > 正文

js如何操作json字符串

更多 时间:2013-8-8 类别:Web前端 浏览量:7091

js如何操作json字符串

js如何操作json字符串

一、要想熟练的操作json数据,就先要了解json数据的结构,json有两种结构:对象和数组

 

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

var jsonObj= {"str":"abc","intstr":1322323456,"max":6753,"time":"2012-10-19"};

 

2. 数组是值(value)的有序集合。一个数组以“[” 开始,“]”结束。值之间运用 “,”分隔。例如:

 

  •  
  •    js 代码   复制
  • 
    var jsonList=
    [
       {
         "str":"abc",
         "intstr":1322323456,
         "max":6753,
         "time":"2012-10-19"
       },                       
       {
         "str":"cde",
         "intstr":782144556,
         "max":15400,
         "time":"2012-10-19"
       }
    ];
    
    		
  •  

    一个详细的 json 格式数据实例

     

  •  
  • JScript 代码   复制
  • 
    // 描述一个人
    
    var person = {
        "Name": "Bob",
        "Age": 32,
        "Company": "IBM",
        "Engineer": true
    }
    
    // 获取这个人的信息
    
    var personAge = person.Age;
    
    // 描述几个人
    
    var members = [
        {
            "Name": "Bob",
            "Age": 32,
            "Company": "IBM",
            "Engineer": true
        },
        {
            "Name": "John",
            "Age": 20,
            "Company": "Oracle",
            "Engineer": false
        },
        {
            "Name": "Henry",
            "Age": 45,
            "Company": "Microsoft",
            "Engineer": false
        }
    ]
    
    // 读取其中John的公司名称
    
    var johnsCompany = members[1].Company;
    
    // 描述一次会议
    
    var conference = {
        "Conference": "Future Marketing",
        "Date": "2012-6-1",
        "Address": "Beijing",
        "Members": 
        [
            {
                "Name": "Bob",
                "Age": 32,
                "Company": "IBM",
                "Engineer": true
            },
            {
                "Name": "John",
                "Age": 20,
                "Company": "Oracle",
                "Engineer": false
            },
            {
                "Name": "Henry",
                "Age": 45,
                "Company": "Microsoft",
                "Engineer": false
            }
        ]
    }
    
    // 读取参会者Henry是否工程师
    
    var henryIsAnEngineer = conference.Members[2].Engineer;
    			

     

  •  

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

    var obj = eval('(' + strJson字符串 + ')');

    或者

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

    或者

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

    然后,就可以这样读取:

    Alert(obj.name);

    Alert(obj.sex);

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

     

     

    三、JSON的优点

    1、基于纯文本,跨平台传递极其简单;

    2、Javascript原生支持,后台语言几乎全部支持;

    3、轻量级数据格式,占用字符数量极少,特别适合互联网传递;

    4、可读性较强,虽然比不上XML那么一目了然,但在合理的依次缩进之后还是很容易识别的;

    5、容易编写和解析,当然前提是你要知道数据结构;

    6、JSON的缺点当然也有,但在作者看来实在是无关紧要的东西,所以不再单独说明。

     

    四、JSON的格式或者叫规则

    JSON能够以非常简单的方式来描述数据结构,XML能做的它都能做,因此在跨平台方面两者完全不分伯仲。

    1、JSON只有两种数据类型描述符,大括号{}和方括号[],其余英文冒号:是映射符,英文逗号,是分隔符,英文双引号""是定义符。

    2、大括号{}用来描述一组“不同类型的无序键值对集合”(每个键值对可以理解为OOP的属性描述),方括号[]用来描述一组“相同类型的有序数据集合”(可对应OOP的数组)。

    3、上述两种集合中若有多个子项,则通过英文逗号,进行分隔。

    4、键值对以英文冒号:进行分隔,并且建议键名都加上英文双引号"",以便于不同语言的解析。

    5、JSON内部常用数据类型无非就是字符串、数字、布尔、日期、null 这么几个,字符串必须用双引号引起来,其余的都不用,日期类型比较特殊,这里就不展开讲述了,只是建议如果客户端没有按日期排序功能需求的话,那么把日期时间直接作为字符串传递就好,可以省去很多麻烦。

     

    标签:js json jquery