原因是:Javascript 在很多时候会把 JSON 对象里面没有双引号包围的值,当做数值处理。比如:

{"a":987654321}

这个 JSON 里头的变量 a,会被当做一个整数 987654321 看待,而:

{"a":"987654321"}

这个 JSON 里头的变量 a,会被当做一个字串,字串的内容是“987654321”看待。

而 Javascript 在内部,会把 987654321 这样的东西当做整数,自动转换成 C int 类型,而缺省情况下,int 类型都是 32 bits的,也就是说,稍微大一点的数就有可能导致溢出。

正确的JSON是这样的:属性名必须用双引号包裹

var json = '{"name":"imooc"}'// 这个是正确的JSON格式
 
var json = "{\"name\":\"imooc\"}"// 这个也是正确的JSON格式
 
var json = '{name:"imooc"}'// 这个是错误的JSON格式,因为属性名没有用双引号包裹
 
var json = "{'name':'imooc'}";//这个也是错误的JSON格式,属性名用双引号包裹,而它用了单引号
 
// 检验JSON格式是否正确,可以使用 JSON.parse(json); 如果是正确的JSON格式,会返回一个对象
// 否则会报错
 
// 如果是对象的话,属性名可以不用双引号包裹
 
var obj = {name:"imooc"};
var obj = {"name":"imooc"};
var obj = {'name':'imooc'};
var obj = {"name":'imooc'};
var obj = {'name':"imooc"};
 
// 上述写法都是正确的。一般使用第一种形式最多,有些人可能为了保证跟JSON格式的字符串保持一致性,
// 也会使用第二种形式。。最后3种形式虽然是正确的,但不建议使用,容易挨打

为什么 JSON 接口的数据都要加双引号!!!不能用单引号的更多相关文章

  1. 豆瓣爬虫——通过json接口获取数据

    最近在复习resqusts 爬虫模块,就重新写了一个豆瓣爬虫,这个网页从HTML 源码上来看是没有任何我想要的信息的,如下图所示: 这是网页视图,我在源码中查找影片信息,没有任何信息,如图: 由此我判 ...

  2. JSON 的标准:双引号而非单引号!

    刚刚测试发现一段很简单的.看似正确的代码却是错误的: <?php $json_str = "{'name':'Eric', 'age':23}"; var_dump(json ...

  3. 解析JSON 注意解析数据为一个对象的情况.--加一下说明

    应用场景: 调某接口时, 获取json数据, 需要对数据进行解析 . 第一种: 只判断接口是否调用成功 { "code":"10102000", "d ...

  4. ASP.NET API(MVC) 对APP接口(Json格式)接收数据与返回数据的统一管理

    话不多说,直接进入主题. 需求:基于Http请求接收Json格式数据,返回Json格式的数据. 整理:对接收的数据与返回数据进行统一的封装整理,方便处理接收与返回数据,并对数据进行验证,通过C#的特性 ...

  5. MVC学习系列6--使用Ajax加载分部视图和Json格式的数据

    Ajax的应用在平时的工作中,很是常见,这篇文章,完全是为了,巩固复习. 我们先看看不使用json格式返回分部视图: 先说需求吧: 我有两个实体,一个是出版商[Publisher],一个是书[Book ...

  6. 接口返回数据Json格式处理

    有这样一个页面 , 用来显示用户的账户记录数据,并且需要显示每个月的 收入 支出合计 ,在分页的时候涉及到一些问题,需要对返回的Json格式做处理,处理起来比较麻烦,后端返回的Json数据格式形式如下 ...

  7. JAVA接口传递参数(POST),从接口接收数据(JSON) -----记录

    1,给接口传递json格式的数据 import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.IOEx ...

  8. Postman Postman测试接口之JSON结构化数据提交

    Postman测试接口之JSON结构化数据提交   by:授客 QQ:1033553122 本文主要是针对结构比较复杂一点的JSON协议数据的提交做个简单说明 举例: 用户下订单接口 接口方向 客户端 ...

  9. Jquery Mobile实例--利用优酷JSON接口读取视频数据

    本文将介绍,如何利用JqueryMobile调用优酷API JSON接口显示视频数据. (1)注册用户接口. 首页,到 http://open.youku.com 注册一个账户,并通过验证.然后找到A ...

随机推荐

  1. SpringAnnotation注解之@Component,@Repository,@Service,@Controller

    @Component:组件,表示此写上了此注解的bean,作为一个组件存在于容器中.这样的话别的地方就可以使用@Resource这个注解来把这个组件作为一个资源来使用了.初始化bean的名字为类名首字 ...

  2. PHP工作笔记:Yii2框架设置页面的关键词和描述

    因为都是做系统,很少用到这个设置,标题也是自动生成的,我们公司网站也没有关键词和描述,这样不利于网站获取相关排名. 设置方式: 直接在视图层做如下设置 $this->title = " ...

  3. 第9课:备份mysql数据库、重写父类、unittest框架、多线程

    1. 写代码备份mysql数据库: 1)Linux下,备份mysql数据库,在shell下执行命令:mysqldump -uroot -p123456 -A >db_bak.sql即可 impo ...

  4. 第2课:jmeter总结、Charles抓包

    1.  tps(throughput):每秒钟处理的事务数(请求数),定义与qps类似(qps:每秒完成的请求个数.)  响应时间(average):每个请求的平均响应时间 2. jmeter实现下载 ...

  5. IGMP 因特网组管理协议

    IGMP(Internet Group Management Protocol)作为因特网组管理协议,用于多播.     与ICMP一样, IGMP也被当作 IP 层的一部分,IGMP报文也通过IP数 ...

  6. 【dlbook】正则化

    对学习算法的修改——旨在减少泛化误差而不是训练误差 显著减少方差而不过度增加偏差. [参数范数惩罚] 通常只对权重做惩罚而不对偏置做惩罚,原因是拟合偏置比拟合权重容易很多. 不同层使用不同惩罚的代价很 ...

  7. 【PL/SQL编程】循环语句

    1. loop语句 loop plsql_sentence; exit when end_condition_exp; end loop; loop语句会先执行一次循环体,然后再判断“exit whe ...

  8. FFmpeg再学习 -- 硬件加速编解码

    为了搞硬件加速编解码,用了一周时间来看 CUDA,接下来开始加以总结. 一.什么是 CUDA (1)首先需要了解一下,什么是 CUDA. 参看:百度百科 -- CUDA 参看:CUDA基础介绍 参看: ...

  9. 前端神器!!gulp livereload实现浏览器自动刷新

    首先gulp是基于Node的,所以确保你已经安装 node.js,在Nodejs官方网站下载跟自己操作系统相对应的安装包. 先说一下gulp安装流程: 1:全局安装gulp,操作为: npm inst ...

  10. [Python] dict字典排序和多条件排序

    利用lambda实现排序:要实现多条件排序,只需要依次指定排序的标准,具体实现如下 counter = {'是': 1, '不是': 1, '你': 3} counter_list = sorted( ...