JSON初探

2016-05-03

2016-05-03

      Json是一种简便的数据结构,是JavaScript的子集。解析就是把json数据解析为javascript代码,序列化就是把javascript数据包装成json。

   json可以支持三种数据类型:

1.简单值。数字,字符,布尔值,不支持undefined 

2.对象

3.数组

1 100
2 "textstrings"
3 true
4 null
5 {
6     "name":"leeho",
7     "age":13
8 }
9 [123,"strings","null"]

一般格式为

[{"name":"a","age":34},{"name":"f","age":23}]

 用JavaScript 代码模拟加载一个JSON 文件

并检测浏览器是否支持JSON 对象

1 //模拟加载json文件
2 var json='[{"name":"a","age":34},{"name":"f","age":23}]';
3 //测试浏览器是否支持alert(typeof JSON);

解析函数parse两种用法示例

//解析函数parse参数示例
//直接调用
var box=JSON.parse(json);
//带第二个参数,用于更改解析内容,即JSON 数组中某个对象的键值对的值
var box=JSON.parse(json,function(name,value){
     if(name=='name')
    return this.name+'yubo';
    else
         return value;
});
alert(box[0].name);

 序列化函数三种用法示例,也可以在需要序列化的JavaScript 代码中定义成员函数toJSON,作为键值对

筛选出需要序列化的某组键值对;

//序列化
var box2=[{name:"ty",age:10},{name:"yugoo",
//选定对象中可以被序列化的成员,过滤对象成员
age:66,
toJSON:function()
{return this.age;}}];
//stringify参数用法
//不带参数序列化
var s=JSON.stringify(box2);
//指定第二个参数,筛选需要序列化的对象成员,用数组表示
var s=JSON.stringify(box2,['age']);
//第二个参数是函数可以更改键值对中的值
var s=JSON.stringify(box2,function(key,value){
    
    if(key=='name')
    return 'mr.'+value;
    else
    return value;
    });
//指定序列化后json文本格式缩进对齐程度
  var s=JSON.stringify(box2,null,4);

    
alert(s);
原文地址:https://www.cnblogs.com/liyu2012/p/5453662.html