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}

JSON --- 一种轻量级的数据交换格式的更多相关文章

  1. JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式

    JSON JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 它基于JavaScript(Standard ECMA-262 3rd Edition - D ...

  2. python开发_json_一种轻量级的数据交换格式

    以下是我做的对于python中json模块的demo 运行效果: Python 3.3.2 (v3.3.2:d047928ae3f6, May 16 2013, 00:03:43) [MSC v.16 ...

  3. 两种常用的数据交换格式:XML和JSON

    不同编程语言之间的数据传输,需要一种通用的数据交换格式,它需要简洁.易于数据储存.快速读取,且独立于各种编程语言.我们往往传输的是文本文件,比如我们都知道的csv(comma seperated va ...

  4. 常用两种数据交换格式之XML和JSON的比较

    目前,在web开发领域,主要的数据交换格式有XML和JSON,对于XML相信每一个web developer都不会感到陌生: 相比之下,JSON可能对于一些新步入开发领域的新手会感到有些陌生,也可能你 ...

  5. XML和JSON两种数据交换格式的比较

    在web开发领域,主要的数据交换格式有XML和JSON,对于在 Ajax开发中,是选择XML还是JSON,一直存在着争议,个人还是比较倾向于JSON的.一般都输出Json不输出xml,原因就是因为 x ...

  6. JSON(JS 对象简谱,一种数据交换格式)

    JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式 存储和表示数据的文本格式 层次结构清晰.简洁 JSON是一个序列化的对象或数组 1.js ...

  7. json 数据交换格式与java

    http://wiki.mbalib.com/wiki/数据交换 数据交换是指为了满足不同信息系统之间数据资源的共享需要,依据一定的原则,采取相应的技术,实现不同信息系统之间数据资源共享的过程. 数据 ...

  8. iOS 中 JSON 数据交换格式

         JSON (JavaScript Object Notation)是一种轻量级的数据交换格式. JSON 的详细教程,能够參见 JSON 中国:http://www.json.org.cn/ ...

  9. json:js和jquery中轻量级数据交换格式

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族 ...

随机推荐

  1. Java_AOP原理

    AOP : 面向切面编程 在程序设计中,我们需要满足高耦合低内聚,所以编程需满足六大原则,一个法则. AOP面向切面编程正是为了满足这些原则的一种编程思想. 一.装饰者模式: 当我们需要给对象增加功能 ...

  2. 【nodejs原理&源码赏析(3)】欣赏手术级的原型链加工艺术

    目录 一. 概述 二. 原型链基础知识 三. Worker类的原型链加工 四. 实例的生成 五. 最后一个问题 六. 一些心得 示例代码托管在:http://www.github.com/dashno ...

  3. 下载安装webstrom及激活

    太久没在新电脑上安装websrtom,又有点忘了咋激活. 一.安装 1.直接在浏览器搜索webstrom,打开官网,直接点击download.如下图 2.打开安装包,开始安装,直接点击 next 3. ...

  4. python和linux的环境设置/PATH

    一.python的环境设置 1.输出path列表: pi@raspberrypi:~$ pythonPython 3.4.0 (default, Jul 1 2014, 09:37:01) [GCC ...

  5. 动态规划—最长回文子串LEETCODE第5题深度剖析

    动态规划对于笔者来说有很重要的意义 一.题目如下: 对于此类题目,笔者常用的的办法是先做个暴力解题思路,然后再对暴力法进行优化. 二.暴力法 //字串遍历 public static String l ...

  6. [转]Go基础之锁的初识

    当我们的程序就一个线程的时候是不需要用到锁的,但是通常我们实际的代码不会是单个线程的,所有这个时候就需要用到锁了,那么关于锁的使用场景主要涉及到哪些呢? 当我们多个线程在读相同的数据的时候则是需要加锁 ...

  7. ALERT日志中常见监听相关报错之三:ORA-609 TNS-12537 and TNS-12547 or TNS-12170 TNS-12535错误的排查

    1.11G中ALERT日志中有报错ORA-609 TNS-12537 and TNS-12547 or TNS-12170  12170, 'TNS-12535等问题的解决方法: Troublesho ...

  8. 走入asp.net mvc不归路:[3]创建控制器

    实际上,控制器就是一个类,一个继承自Controller的类.正常创建一个Controller即可,而问题在于asp.net mvc提供了一套便捷的方法,在创建一个Controller时,可以自动创建 ...

  9. Mac 下如何安装pip 和xlwt

    sudo easy_install pip pip install xlwt sudo pip install xlwt sudo pip install requests

  10. 微信小程序存放视频文件到阿里云用到算法js脚本文件

           peterhuang007/weixinFileToaliyun: 微信小程序存放视频文件到阿里云用到算法js脚本文件 https://github.com/peterhuang007/ ...