理解JSON对象:JSON.parse、 JSON.stringify
何时是JSON,何时不是JSON?
JSON就是一个有特殊规则的字符串,按照这个规则我们就可以把这个字符串解析成JS对象。
JSON是设计成描述数据交换格式的,他也有自己的语法,这个语法是JavaScript的一个子集。
{ "prop": "val" } 这样的声明有可能是JavaScript对象字面量也有可能是JSON字符串,取决于什么上下文使用它,如果是用在string上下文(用单引号或双引号引住,或者从text文件读取)的话,那它就是JSON字符串,如果是用在对象字面量上下文中,那它就是对象字面量。
// 这是JSON字符串var foo = '{ "prop": "val" }'; // 这是对象字面量var bar = { "prop": "val" };
而且要注意,JSON有非常严格的语法,在string上下文里{ "prop": "val" } 是个合法的JSON,但{ prop: "val" }和{ 'prop': 'val' }确实不合法的。所有属性名称和它的值都必须用双引号引住,不能使用单引号。另外,即便你用了转义以后的单引号也是不合法的,详细的语法规则可以到这里查看。
真正的JSON对象
开头已经提到,对象字面量不是JSON对象,但是有真正的JSON对象。但是两者完全不一样概念,在新版的浏览器里JSON对象已经被原生的内置对象了,目前有2个静态方法:JSON.parse用来将JSON字符串反序列化成对象,JSON.stringify用来将对象序列化成JSON字符串。老版本的浏览器不支持这个对象,但你可以通过json2.js来实现同样的功能。
如果还不理解,别担心,参考一下的例子就知道了:
// 这是JSON字符串,比如从AJAX获取字符串信息var my_json_string = '{ "prop": "val" }'; // 将字符串反序列化成对象var my_obj = JSON.parse( my_json_string ); alert( my_obj.prop == 'val' ); // 提示 true, 和想象的一样! // 将对象序列化成JSON字符串var my_other_json_string = JSON.stringify( my_obj );
转载于:https://www.cnblogs.com/yzhihao/p/6378006.html
理解JSON对象:JSON.parse、 JSON.stringify相关推荐
- JSON对象转化为JSON字符串
在进行前端开发的时候,有时我们会遇到要将json对象转化为json字符串,那么该如何进行转化呢??? 我们可以用JSON对象的stringify()和parse()方法. JSON.stringify ...
- JS转json对象为格式化json字符串
JS转json对象为格式化json字符串 JSON.stringify(jsonObj, null, 4)
- Java对象转换成JSON对象/JSON对象转换成JSON字符串/JSON字符串转换成JS对象
文章目录 后端部分 前端部分 后端部分 Option op = new Option("海淀","hd");//java对象转换json对象 JSONObjec ...
- Json对象转换成Json数组
问题 在写单元测试是报错如下: JSON解析错误:不能将JavaUTIL.AARYLIST实例反序列化到StaskObjo对象令牌中 代码: 自己解决了挺长时间,也没研究出什么好的办法,最后问朴世超组 ...
- JSON对象_JSON.parse()方法
功能: JSON.parse() 方法用来将 JSON 字符串解析成 javascript的值或对象,同时可以通过第二参数对解析值进行转换. 语法: JSON.parse(text [, revive ...
- js中 json对象的转化 JSON.parse()
JSON.parse() 方法用来解析JSON字符串,json.parse()将字符串转成json对象.构造由字符串描述的JavaScript值或对象.提供可选的reviver函数用以在返回之前对所得 ...
- JSON数据格式----- JavaScript与JSON、JavaScript的JSON对象、构建JSON格式数据
JavaScript与JSON JSON是一种语法,用来序列化对象.数组等的.它只是基于JavaScript语法 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zWMc ...
- 将嵌套的json对象转化为json数组(python列表推导式)
需求说明 想将一个json文件录入MongoDB,如下图所示. 但是原文件是嵌套json对象的形式,如果直接导入MongoDB,会整体变成一个Document: 注:MongoDB中的Document ...
- android怎么根据标题解析json,如何在android中解析没有json对象标题的json数组?
首先,我创建了解析器类JSONParser.java package com.example.myparse; import java.io.BufferedReader; import java.i ...
- php返回json数组元素,php生成返回json对象数组(json支持中文)
php生成返回json对象数组 注意两种方法生成的对象数组在结构上的区别 $jarr=array( 'total' => 239, 'list' => array( array( 'cod ...
最新文章
- [图解教程]Axis2与Eclipse整合开发Web Service之二:WSDL逆向生成服务端
- 《浪潮之巅》读书笔记汇总
- HDU 6301.Distinct Values-贪心、构造字典序最小的数列 (2018 Multi-University Training Contest 1 1004)...
- Elasticsearch kibana一些基本概念
- 三位对我影响最深的老师
- Android安全问题 抢先开机启动
- 利用 QQWry.Dat 实现 IP 地址高效检索(PHP)
- python查找excel中字符串_在Python问题中通过Excel搜索字符串/正则表达式
- poj2689Prime Distance
- easyui更换主题之后出现validatebox的验证提示信息显示跑偏的解决方案
- 如何在CentOS 7上安装和安全配置MariaDB 10
- java如何看手机型号,基于JAVA代码 获取手机基本信息(本机号码,SDK版本,系统版本,手机型号)...
- kx linux驱动下载,创新5.1声卡驱动kX Project Audio DriverV5.1免费版下载 - 下载吧
- Javascript运行环境
- 使用Python获取DNS记录
- mysql concat 长度限制_mysql中group_concat()长度限制
- 互联网公司的中台实践:网易杭研的中台往事
- postgresq | pg命令
- 干货福利 | “新基建”时代,数据如何驱动企业数智化升级
- Kettle构建Hadoop ETL实践(六):数据转换与装载
热门文章
- 使用EntityFramework6连接MySql数据库(db first方式)
- 如何查看mysql连接相关参数
- css盒子模型、边框border、外边距margin、填充padding、轮廓outline
- JavaScipt 中的事件循环(event loop),以及微任务 和宏任务的概念
- 20145235李涛《网络对抗》Exp2 后门原理与实践
- [转载] HTTP 之 IOS一谈
- tomcat端口号被占用
- 安卓开发20:动画之Animation 详细使用-主要通过java代码实现动画效果
- linux查找技巧: find grep xargs linux系统信息查看大全
- Java ReentrantLock 详解