何时是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相关推荐

  1. JSON对象转化为JSON字符串

    在进行前端开发的时候,有时我们会遇到要将json对象转化为json字符串,那么该如何进行转化呢??? 我们可以用JSON对象的stringify()和parse()方法. JSON.stringify ...

  2. JS转json对象为格式化json字符串

    JS转json对象为格式化json字符串 JSON.stringify(jsonObj, null, 4)

  3. Java对象转换成JSON对象/JSON对象转换成JSON字符串/JSON字符串转换成JS对象

    文章目录 后端部分 前端部分 后端部分 Option op = new Option("海淀","hd");//java对象转换json对象 JSONObjec ...

  4. Json对象转换成Json数组

    问题 在写单元测试是报错如下: JSON解析错误:不能将JavaUTIL.AARYLIST实例反序列化到StaskObjo对象令牌中 代码: 自己解决了挺长时间,也没研究出什么好的办法,最后问朴世超组 ...

  5. JSON对象_JSON.parse()方法

    功能: JSON.parse() 方法用来将 JSON 字符串解析成 javascript的值或对象,同时可以通过第二参数对解析值进行转换. 语法: JSON.parse(text [, revive ...

  6. js中 json对象的转化 JSON.parse()

    JSON.parse() 方法用来解析JSON字符串,json.parse()将字符串转成json对象.构造由字符串描述的JavaScript值或对象.提供可选的reviver函数用以在返回之前对所得 ...

  7. JSON数据格式----- JavaScript与JSON、JavaScript的JSON对象、构建JSON格式数据

    JavaScript与JSON JSON是一种语法,用来序列化对象.数组等的.它只是基于JavaScript语法 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zWMc ...

  8. 将嵌套的json对象转化为json数组(python列表推导式)

    需求说明 想将一个json文件录入MongoDB,如下图所示. 但是原文件是嵌套json对象的形式,如果直接导入MongoDB,会整体变成一个Document: 注:MongoDB中的Document ...

  9. android怎么根据标题解析json,如何在android中解析没有json对象标题的json数组?

    首先,我创建了解析器类JSONParser.java package com.example.myparse; import java.io.BufferedReader; import java.i ...

  10. php返回json数组元素,php生成返回json对象数组(json支持中文)

    php生成返回json对象数组 注意两种方法生成的对象数组在结构上的区别 $jarr=array( 'total' => 239, 'list' => array( array( 'cod ...

最新文章

  1. [图解教程]Axis2与Eclipse整合开发Web Service之二:WSDL逆向生成服务端
  2. 《浪潮之巅》读书笔记汇总
  3. HDU 6301.Distinct Values-贪心、构造字典序最小的数列 (2018 Multi-University Training Contest 1 1004)...
  4. Elasticsearch kibana一些基本概念
  5. 三位对我影响最深的老师
  6. Android安全问题 抢先开机启动
  7. 利用 QQWry.Dat 实现 IP 地址高效检索(PHP)
  8. python查找excel中字符串_在Python问题中通过Excel搜索字符串/正则表达式
  9. poj2689Prime Distance
  10. easyui更换主题之后出现validatebox的验证提示信息显示跑偏的解决方案
  11. 如何在CentOS 7上安装和安全配置MariaDB 10
  12. java如何看手机型号,基于JAVA代码 获取手机基本信息(本机号码,SDK版本,系统版本,手机型号)...
  13. kx linux驱动下载,创新5.1声卡驱动kX Project Audio DriverV5.1免费版下载 - 下载吧
  14. Javascript运行环境
  15. 使用Python获取DNS记录
  16. mysql concat 长度限制_mysql中group_concat()长度限制
  17. 互联网公司的中台实践:网易杭研的中台往事
  18. postgresq | pg命令
  19. 干货福利 | “新基建”时代,数据如何驱动企业数智化升级
  20. Kettle构建Hadoop ETL实践(六):数据转换与装载

热门文章

  1. 使用EntityFramework6连接MySql数据库(db first方式)
  2. 如何查看mysql连接相关参数
  3. css盒子模型、边框border、外边距margin、填充padding、轮廓outline
  4. JavaScipt 中的事件循环(event loop),以及微任务 和宏任务的概念
  5. 20145235李涛《网络对抗》Exp2 后门原理与实践
  6. [转载] HTTP 之 IOS一谈
  7. tomcat端口号被占用
  8. 安卓开发20:动画之Animation 详细使用-主要通过java代码实现动画效果
  9. linux查找技巧: find grep xargs linux系统信息查看大全
  10. Java ReentrantLock 详解