zoukankan      html  css  js  c++  java
  • JSON --- 一种轻量级的数据交换格式

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式,易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。本篇主要介绍javascript中json的使用方法。

    1. 语法

    JSON支持表示三种类型的数据:简单值对象数组

    • 简单值

    和javascript基本数据类型一样,但是不支持undefined

    • 对象

    对象属性一定要加双引号"", 并且末尾没有分号;

    {
        "name" : "roddy",
        "age" : 25
    }
    
    • 数组

    和javascript数组一样。

    2. 解析与序列化

    javascript中主要用JSON对象的.stringify().parse()方法来解析和序列化。

    JSON.stringify( jsData[, filter, indent] )

    • 把javascript对象序列化为JSON格式的字符串。
    • jsData : 待序列化的javascript数据。
    • filter: 过滤器,可以是一个数组或者一个函数。
      数组: 序列化的JSON中只包含数组中拥有的属性。
      函数: 该函数接收两个参数,分别是对应的键值对keyvalue,该函数返回的值即为JSON中属性对应的值。
    • indent: 缩进。可以是一个数值或者一个字符串。
      数值: 缩进对应数值的空格符。
      字符串: 用对应字符串代替缩进符。
    // javascript对象
    var jsObject = {
        name : "roddy",
        age : 25
    };
    
    // 默认
    console.log( JSON.stringify( jsObject ) );
    // 传入数组过滤器
    console.log( JSON.stringify( jsObject, [ "name" ] ) );
    // 传入函数过滤器
    console.log( JSON.stringify( jsObject, function( key, value ) {
        if( key === "name" ) {
            return "Roddy";
        } else {
            return value;
        }
    } ) );
    // 传入数值缩进
    console.log( JSON.stringify( jsObject, null, 4 ) );
    // 传入字符串缩进
    console.log( JSON.stringify( jsObject, null, "-" ) );
    
    // 输出
    // {"name":"roddy","age":25}
    // {"name":"roddy"}
    // {"name":"Roddy","age":25}
    /**
    {
        "name":"roddy",
        "age":25
     }
    **/
    /**
    {
    -"name":"roddy",
    -"age":25
    }
    **/
    

    JSON.parse( jsonData[, reduction])

    • 把JSON格式数据解析为javascript数据
    • jsonData: 待解析的JSON数据
    • reduction: 还原函数,该函数接收两个参数,分别是对应的键值对keyvalue,该函数返回的值即为javascript中属性对应的值。
    var jsonString = '{ "name" : "roddy", "age" : 25 }';
    
    // 默认
    console.log( JSON.parse( jsonString ) );
    // 传入还原函数
    console.log( JSON.parse( jsonString, function( key, value ) {
        if( key === "name" ) {
            return "Roddy";
        } else {
            return value;
        }
    } ) );
    
    // 输出
    // {name:"roddy",age:25}
    // {name:"Roddy",age:25}
    
  • 相关阅读:
    工作交接
    .NET 利用反射将对象数据添加到数据库
    【C#】IPAddress.Any 解决本地ip和服务器ip切换问题
    【C#】警告System.Configuration.ConfigurationSettings.AppSettings" 已过时
    【C#】TcpListener的对象“已过时”的编译警告
    大城小胖这几年积累的动画库、手势库、物理引擎库
    select option项选择后跳转页面
    360引起的Soap的java.io.EOFException错误
    linux安装mysql-5.7.22与数据自动备份
    性能测试流程
  • 原文地址:https://www.cnblogs.com/roddy/p/6515485.html
Copyright © 2011-2022 走看看