概述

JSON 即 (Javascript Object Notation,Javascript 对象表示法),是在Javascript中写结构化数据的方式。而JSON本身只是一种数据格式。

通常开发项目中通过JSON传输的数据并不能直接使用,需要在前端或者后端进行序列化和解析,比如:

var book = {
name:"json 序列化和解析",
page:1,
author:["michael.guo","michael.shuai"]
}

var jsonText = JSON.stringify(book); //把javascrip对象序列化为一个JSON字符串

注意:默认情况下jsonText不包含任何格式缩进、空格。

var bookCopy = JSON.parse(jsonText);//把JSON字符串解析为原生Javascript值

然后bookCopy就可以使用了,比如console.log(bookCopy.page); //1

序列化选项

JSON.stringify()除了可以序列化Javascript的对象外,还可以通过接收两个参数控制JSON的序列化结果。比如

数组:

 var jsonText = JSON.stringify(book,["name"]); 

返回

{"title":'json 序列化和解析'"}  

函数:

var jsonText = JSON.stringify(book,function(key,value){

  switch(key){

    case "name":
      return value.join(",");
    case "author":
      return undefined;
    default:
      return value;
  } });  

返回

{"name":"json 序列化和解析"}

这里只有一个name,author去哪了?

因为author返回的undefined在过滤的时候被自动删除了。

字符串的缩进

刚才说默认是没有格式的,那么如果我想要有格式的呢?

没问题!例如,已2个空格为单位缩进。如下:

var jsonText = JSON.stringify(book,null,2); 

或者

你想玩点新花样?

var jsonText = JSON.stringify(book,null,"-"); 

toJSON()方法

尽管JSON.stringify()可以满足大多数需求,但当处理Date对象的时候还是非常不方便,尽管有toIOSString()可以达到目的,但如果有偷懒的理由,为什么不?

//返回字符串的 Date 对象,并格式化为 JSON 数据:
var d=new Date();
var n=d.toJSON();
//n 输出结果:
2016-02-05T02:46:42.972Z

JSON 序列化和解析的更多相关文章

  1. JSON序列化和解析

    1.JSON.stringfy()用于将 JavaScript 值转换为 JSON 字符串 2.JSON.parse()用于将一个 JSON 字符串转换为 JavaScript 对象. 3.JSON. ...

  2. 使用Newtonsoft.Json.dll(JSON.NET)动态解析JSON、.net 的json的序列化与反序列化(一)

    在开发中,我非常喜欢动态语言和匿名对象带来的方便,JSON.NET具有动态序列化和反序列化任意JSON内容的能力,不必将它映射到具体的强类型对象,它可以处理不确定的类型(集合.字典.动态对象和匿名对象 ...

  3. javascript中 json数据的解析与序列化

    首先明确一下概念: json格式数据本质上就是字符串: js对象:JavaScript 中的几乎所有事务都是对象:字符串.数字.数组.日期.函数,等等. json数据的解析: 就是把后端传来的json ...

  4. C# dynamic类型序列化和反序列化之Newtonsoft.Json,动态解析远端返回的jSON数据

    一.说明 1.Newtonsoft.Json 中的Linq To Json中提供了方便的json数据查询.修改等操作. 例如:JObject,JArray 2.在JObject.FromObject( ...

  5. .Net深入实战系列—JSON序列化那点事儿

    序 当前主流的序列化JSON字符串主要有两种方式:JavaScriptSerializer及Json.net(Nuget标识:Newtonsoft.Json).JavaScriptSerializer ...

  6. Json序列化之.NET开源类库Newtonsoft.Json的研究

     一.Json简介 JSON(全称为JavaScript Object Notation) 是一种轻量级的数据交换格式.它是基于JavaScript语法标准的一个子集. JSON采用完全独立于语言的文 ...

  7. Logstash为什么那么慢?—— json序列化

    今天跟峡谷金桥聊天,询问起Logstash的性能,金桥提示说Logstash中json的序列化是浪费性能的一方面.于是便有了下面的测试: 第一步,造数据 首先需要造一份数据,数据可以通过logstas ...

  8. 关于json序列化和反序列的问题,没事写个案例,希望能帮到那些需要帮忙的朋友!

    现在关于json的读写问题,有许许多多的解决方法,因人而异,根据实际问题去选择自己想要的最容易方法.我觉得自带的Newtonsoft.Json是个不错的选择,随便写两个例子吧! 一:关于简单的json ...

  9. Java 的世界,我不懂:奇葩的 json 序列化

    先上张图,代表我心中的十万头草泥马: 写这么长的代码,头回见数组和单个实体共用同一个 json 节点的! 恐怕只有 java 社区的大牛B 才能做出这等事.. 由 Apache 发布: http:// ...

随机推荐

  1. NOI导刊2010提高装备运输

    www.luogu.org/problem/show?pid=1794 挺裸的一题背包,算很基础. 可以运用的技巧是三维->二维(节省空间还能少敲一点代码 #include<iostrea ...

  2. java微信开发API解析(二)-获取消息和回复消息

    java微信开发API解析(二)-获取消息和回复消息 说明 * 本演示样例依据微信开发文档:http://mp.weixin.qq.com/wiki/home/index.html最新版(4/3/20 ...

  3. quick-cocos2d-x教程1:在window上创建第一个项目文件夹,并制作helloworld

    说明:此教程是针对cocos2dx 2.0系列的,3.0的版本号,如今还没有公布出来. 1)首先从github.com把这个项目下载到本地.然后装到d盘的根文件夹,并设置文件夹路径为d:\quick- ...

  4. POJ 2482 Stars in Your Window(线段树)

    POJ 2482 Stars in Your Window 题目链接 题意:给定一些星星,每一个星星都有一个亮度.如今要用w * h的矩形去框星星,问最大能框的亮度是多少 思路:转化为扫描线的问题,每 ...

  5. 初识ajax

    ajax优势:不刷新整个页面,只刷新局部(无刷新) 无刷新的好处: 只更新部分页面,有效利用宽带 提供连续的用户体验 提供类似C/S的交互效果,操作更方面 什么是ajax AJAX :代表 Async ...

  6. Array的基本操作

    准备饿补基础技术,先来个数组的总结. 1 .合并操作    concat :   var C = A.concat(B);    用A数组合并B数组,生成新的C数组.      循环插入        ...

  7. linux 虚拟机模拟配置网络路由环境-简版

    前言:网络路由不管是平常在家里,还是在公司中,都是必需配置的,所以还是非常重要的,今天小编就给大家做个配置网络路由配置的小实验,仅供大家参考.   一.首先,来简单介绍一下网络路由. 1. 网络路由: ...

  8. sublime text 3配置使用python

    1. 在sublime text的官网下载,是适合自己系统的版本.官网地址:https://www.sublimetext.com/3 2. 安装好后,在菜单栏打开:Preferences---> ...

  9. .Net 异步方法, await async 使用

    最近朋友问起await  和 async第一次听说这个await ,就查了一下这个await使用在于 异步方法async 中,中文意思就是等待,经过一系列的百度参考简单的明白了这个东西的意思,  异步 ...

  10. 理解Vue中的Render渲染函数

    理解Vue中的Render渲染函数 VUE一般使用template来创建HTML,然后在有的时候,我们需要使用javascript来创建html,这时候我们需要使用render函数.比如如下我想要实现 ...