为什么来自obj.getAttribute的json字符串不想解析
Why json string from obj.getAttribute doesn't want to parse?
var jsn=getAttr(ref,"json-data").toString();
console.log(jsn); //{test: true,stringtest:"hallo"}. it's OK.
JSON.parse(jsn); //Uncaught SyntaxError: Unexpected token s, line: line with JSON.parse;
我认为JSON.parse
对这些数据做了一些不对的事情。我试图删除stringtest:"hallo"
- 没有结果...PS:我也认为我做错了什么,那么我问了这个问题
我第一次尝试JSON.parse("{"+jsn+"}");
.
JSON 格式不正确,因为对象键必须用引号引起来。以下方法将起作用:
var jsn = '{"test": true, "stringtest": "hallo"}';
JSON.parse(jsn);
编辑:指定JSON格式的RFC4627指出:
2.2. 对象
对象结构表示为一对大括号
围绕零个或多个名称/值对(或成员(。 名称是
字符串。 每个名称后都有一个冒号,用于分隔名称
从值。 单个逗号将值与后面
的值分开 名字。 对象中的名称应该是唯一的。object = begin-object [ member *( value-separator member ) ] end-object member = string name-separator value
如您所见,JSON 对象由名称/值对组成,其中名称是字符串。RFC再次表示:
字符串的表示类似于 C 中使用的约定 编程语言家族。 字符串开头和结尾为
引号。 所有 Unicode 字符都可以放在
引号(必须转义的字符除外(:
引号、反固相线和控制字符 (U+0000
通过 U+001F(。字符串 = 引号 *字符引号
引号 = %x22 ;'">
因此,根据 RFC,密钥必须用双引号括起来,而不是单引号。不过,我想有些解析器可能更宽容并接受它们,但我会坚持标准。
相关文章:
- onclick风格的整个李不想要
- Mocha js测试字符串不相等时不显示diff
- 使自动完成可搜索下拉菜单don'我不想在点击搜索时显示列表
- 使用gulp-angular gettext从JS文件中提取字符串不起作用
- PHP's json_decode返回空字符串(不是NULL)
- RequireJS加载我没有的资源'我不想
- 在地图加载/页面加载时,我想将地图设置为当前地理位置,但不想在地图上显示定位图标
- 使用jscodeshift添加表达式时,错误{..}与类型字符串不匹配
- 我想遍历一个对象数组,我不想要任何重复项
- 如何在javascript中调用onclick事件?我没有'我不想在我的HTML页面中使用任何事件
- 日期选择器更改事件抛出”;TypeError:字符串不是函数;
- IE11没有'我不想把重点放在“disabled”元素上
- JSON对象不想初始化
- 什么时候字符串不是字符串?当它没有 include() 方法时
- 为什么我的 React getDOMNode().textContent JavaScript 字符串不等于字符串
- 替换 JavaScript 中出现的所有字符串不起作用
- 更改链接 URL 中的路径名,同时保持查询字符串不变
- 为什么来自obj.getAttribute的json字符串不想解析
- 正则表达式不想要地删除子字符串
- 从字符和我不想删除的字符分割字符串