zoukankan      html  css  js  c++  java
  • 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);
  • 相关阅读:
    Java for LeetCode 229 Majority Element II
    Java for LeetCode 228 Summary Ranges
    Java for LeetCode 227 Basic Calculator II
    Java for LintCode 颜色分类
    Java for LintCode 链表插入排序
    Java for LintCode 颠倒整数
    Java for LintCode 验证二叉查找树
    Java for LeetCode 226 Invert Binary Tree
    Java for LeetCode 225 Implement Stack using Queues
    Java for LeetCode 224 Basic Calculator
  • 原文地址:https://www.cnblogs.com/liyu2012/p/5453662.html
Copyright © 2011-2022 走看看