今天整理代码的时候发现JSON.pare解析时会报了一个错误,而且很难找原因,调试了几分钟没有成功,猜测可能是单双引号引起的错误。修改了单双引号后程序正常运行了,现在记录下这个bug。

关于JSON.parse()的用法可以参考这里   https://technet.microsoft.com/zh-cn/sysinternals/cc836466(en-us,VS.85).aspx

正题如下…………………………………………………………………………

首先要区分json和js对象,在javascript中json的名和值都需要引号包裹的,比如{"a":"b"}; 而js对象,只有值必须包裹名可以包裹也可以不包裹,比如{a:"b"}这样是正确的{"a":"b"}这样也是正确的。

1、名值对使用单引号包裹

  因为平常都是用双引号包裹字符串的,所以我把要转化的字符串自然就写成这样子了。

var str="{'a':'1'}"

  然后当我兴奋的使用JSON.parse接收对象的时候,呃,报错了

var json=JSON.parse(str);

  看到这个结果,也看不出来原因。着实郁闷了一会。忽然想到是不是单双引号的问题,对调下发现成功了。

2、名值对使用双引号包裹

var str='{"a":"1"}';
var json=JSON.parse(str);

  名值对使用双引号包裹发现成功了。

  

3、全部使用双引号包裹,当然这时候引号要转义

var str="{\"a\":\"1\"}";
var json=JSON.parse(str);

  结果也是成功的

 

结论:使用JSON的parse将json形式的字符串转化为json的时候,名值对都必须使用双引号包裹

ps:如果有哪位大神知道为什么,请邮件小弟

JSON.parse解析单引号名值对报错的更多相关文章

  1. JSON Parse error: Unexpected identifier "object";stringToAnyType报错 uni-app

    只限于uni 的局限问题,博主的报错是因为初始化某些关键数据在uni的  onLoad生命周期  和  onReady生命周期里面初始化,导致数据加载时出现个别报错的BUG JSON Parse er ...

  2. JSON.stringify()方法是将一个javascript值(对象或者数组)转换成为一个JSON字符串;JSON.parse()解析JSON字符串,构造由字符串描述的javascript值或对象

    JSON.stringify()方法是将一个javascript值(对象或者数组)转换成为一个JSON字符串:JSON.parse()解析JSON字符串,构造由字符串描述的javascript值或对象

  3. 前端ajax用post方式提交json数据给后端时,网络报错 415

    项目框架:spring+springmvc+mybatis 问题描述:前端ajax用post方式提交json数据给后端时,网络报错 415 前端异常信息:Failed to load resource ...

  4. jsp:useBean的属性class值一直报错的问题

    先附上代码: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8 ...

  5. JSON.parse 解析json字符串时,遇换行符报错

    Json字符串转换成Json对象时候,有两种方式: 假设d是json字符串: 1,eval('(' + d + ')'). 2,JSON.parse(d): 但是以上方式有隐患,如果Json字符串有换 ...

  6. JSON.parse 解析json字符串时,遇字符串换行符,解析失败

    今天遇到json字符串转对象时报错了,发现有个字符串有换行符,仔细找了原因. 结果是因为JSON.parse转json字符串时遇到一些特殊字符需要先转义,如图所示 然后尝试了各路大神介绍的办法,均不适 ...

  7. 【javascript基础】 原生JSON.parse解析异常问题

    [问题背景]用jQ,ajax返回json,返回的字符串如:{name:"suntiger035"},status:200,readyState:4,代码无任何问题,结果,succe ...

  8. 从返回值未报错得到的对于java finally理解

    不多说了,直接看图 这个代码来自<深入理解java虚拟机(第二版)>,我在eclipse中编辑的,但是没有报错,一般来说,没有返回值,eclipse都会有个提示或者报错啥的,但是这个没有, ...

  9. Spark1.3使用外部数据源时条件过滤只要是字符串类型的值均报错

    CREATE TEMPORARY TABLE spark_tbls USING org.apache.spark.sql.jdbc OPTIONS ( url 'jdbc:mysql://hadoop ...

随机推荐

  1. Linux:ssh连接服务器很慢

    ssh连接服务器,如果很慢,可以进行如下处理: vi /etc/ssh/sshd_config#UseDNS yes改成:UseDNS no/etc/init.d/sshd restart ----- ...

  2. winform 控件(1)

    单词:controls(父类),所有的控件dataSource ,工具的数据源DisplayMember,属性,指定的值 <1>label--文本显示工具属性:1.text,是显示文字的n ...

  3. windows7下安装python3的scrapy框架

    强大的Anaconda和Spyder.不过如何在这个平台上安装Scrapy呢. 打开MS-DOS(win+R输入cmd回车) 然后输入: conda install -c scrapinghub sc ...

  4. XidianOJ 1120 Gold of Orz Pandas

    题目描述 Orz Panda is addicted to one RPG game. To make his character stronger, he have to fulfil tasks ...

  5. linux(debian)下邮件发送

    关键字: exim4  mutt  smtp 主要的事情就是配置exim4,按照网上的流程来.在这里总结一下: 需要修改的文件有三个:/etc/exim4/update-exim4.conf.conf ...

  6. 使用阿里Docker镜像加速器加速

    在阿里开发者平台注册开发者账号 https://dev.aliyun.com/search.html 注册之后可以访问Docker镜像服务 https://cr.console.aliyun.com/ ...

  7. noip2006 2^k进制数

    设r是个2k进制数,并满足以下条件: (1)r至少是个2位的2k进制数. (2)作为2k进制数,除最后一位外,r的每一位严格小于它右边相邻的那一位. (3)将r转换为2进制数q后,则q的总位数不超过w ...

  8. Xcode 字体 设置-- Xcode family没有显示的字体

    前往文件夹 -> /Users/user/Library/Developer/Xcode/UserData/FontAndColorThemes/  (user改为自己的用户名) -----如果 ...

  9. Elasticsearch分布式搜索集群配置

    配置文件位于%ES_HOME%/config/elasticsearch.yml文件中,用Editplus打开它,你便可以进行配置.   所有的配置都可以使用环境变量,例如:node.rack: ${ ...

  10. Python基础(七)内置函数

    今天来介绍一下Python解释器包含的一系列的内置函数,下面表格按字母顺序列出了内置函数: 下面就一一介绍一下内置函数的用法: 1.abs() 返回一个数值的绝对值,可以是整数或浮点数等. 1 2 3 ...