JSON.parse:应为属性名或';}';

JSON.parse:应为属性名或';}';,json,parsing,Json,Parsing,数据包含(/“/): 脚本: console.log($.parseJSON(result)); 我犯了个错误 JSON.parse: expected property name or '}'. 如果您正在接收带有编码的“”的JSON,则在执行JSON.parse之前,必须将“的每个实例替换为真实的”。比如: myJSONstring.replace(/"/ig,'"'); 在JSON文件中使用单引号时出现了同样的问题,所有字符串属性/值都改为双引号,现在工作正常,希望

数据包含(/
/):

脚本:

console.log($.parseJSON(result));
我犯了个错误

JSON.parse: expected property name or '}'.

如果您正在接收带有编码的
”的JSON,则在执行
JSON.parse
之前,必须将
的每个实例替换为真实的
。比如:

myJSONstring.replace(/"/ig,'"');

在JSON文件中使用单引号时出现了同样的问题,所有字符串属性/值都改为双引号,现在工作正常,希望对任何人都有帮助

更改:

JSON.parse("{'wrongQuotes': 5}") 
致:

更改
{“测试”:“101”、“mr”:“103”、“主教”:“102”}


“{”test:“101”,“mr:“103”,“bishop:“102”}


如果这是来自服务器(PHP)
i、 e


然后在Javascriptend

var javascript\u var=$.parseJSON(“”)

适用于使用laravel blade并在视图中声明JS变量的任何人

您需要使用:

var json = JSON.parse('{!! $json !!}');

否则,由于引号被解析为“

”,您将得到此错误,例如,如果您得到类似的结果

{“位置”:“{'lat':4.6351144,'lng':-74.1201119999999}”

从您的服务器,或最近得到一个错误的转换格式。 首先,拿你的绳子

myItemString = "{'lat': 4.6351144, 'lng': -74.12011199999999}"
并使用replace和稍后的json.parse更改键, “键”至-->“键”


根据错误消息,可能您有一个未加引号的撇号?这些必须使用反斜杠或Unicode转义(\u0027)进行转义抱歉,这是一种类型,我只有“您发布的JSON是干净的”。请编辑以反映实际的JSON字符串(如果它不同)。您所说的“数据包含(/“quot/)”是什么意思?{“董事会主席”:“1”,“总经理”:“10”}这就是我得到的。+1为我做了这项工作。你知道这次事故的原因吗“进来?是不是因为mimetype不是来自服务器端的javascript或json,所以浏览器会放置这些内容?@Sid,取决于您从何处以及如何获取json。有可能是有人在服务器上错误地将编程编码为URL编码JSON字符串。真是愚蠢的事情!你说得对。这一个不起作用:JSON.parse(“{ple:2}”),但这一个起作用了:JSON.parse(“{ple:2}”),谢谢你,回音“{'success':false}”;不起作用,回显“{“成功”:false}”;有。:)@Pithikos,JSON规范需要双引号,而不是单引号。这只是规范的定义:@JonathanM谢谢。虽然我的问题是修辞性的。我只是希望回答者能提供更多关于为什么需要双引号的信息:)晚了一年,但当我使用JSON.stringify()时,我得到的是%22而不是引号。这是通过使用string.replace(/\%22/g,“”)修复的。注意:替换为“”,不带空格
var json = JSON.parse('{!! $json !!}');
myItemString = "{'lat': 4.6351144, 'lng': -74.12011199999999}"
     const key1 = myItemString.replace("'lat'",'"lat"')
      const key12 = key1.replace("'lng'", '"lng"');
      const obj = JSON.parse(key12)
      console.log(obj)