JQuery.parseJSON无法使用字符串
JQuery.parseJSON not working with string
我正在尝试将字符串解析为对象。我在下面的链接中查看了jQueryparseJSON文档我还包含了jquery库,所以我知道它不是那个。
这是我迄今为止的代码
var str = "{'val1': 1, 'val2': 2, 'val3': 3}";
var obj = jQueryparseJSON( str );
alert(obj.val1);
在Firebug中,我得到了以下错误:
SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data
我知道这个解决方案很可能很简单,但我一直在忽视它。
示例代码中的测试字符串不是有效的JSON:
var str = '{"val1": 1, "val2": 2, "val3": 3}';
var obj = jQuery.parseJSON( str );
alert(obj.val1);
现在,如果您这样做是因为某个服务将该对象作为JSON字符串提供,那么jQuery很可能会为您完成解析步骤。如果您只是想在JavaScript代码中包含一个对象文字,那么根本没有理由涉及JSON服务:
var obj = { val1: 1, val2: 2, val3: 3 };
创建一个对象。
请注意,JSON语法比JavaScript对象文字语法更严格。JSON坚持用双引号字符引用属性名称,当然,值只能是数字、字符串、布尔值或null
。
您的字符串不是有效的JSON。对象键必须用双引号括起来,而不是单引号。
var str = '{"val1": 1, "val2": 2, "val3": 3}';
var obj = jQuery.parseJSON(str);
alert(obj.val1);
演示
function str2json (str, val, obj) {
var obj = str.indexOf("'") != -1
? JSON.parse(str.replace(/'/g, "'""))
: JSON.parse(str);
return (val === undefined ? obj /* JSON.stringify(obj) */ : obj[val])
};
str2json("{'val1': 1, 'val2': 2, 'val3': 3}", "val1"); // `1`
str2json("{'val1': 1, 'val2': 2, 'val3': 3}")
// `obj` : `[object Object]` ,
// `JSON.stringify(obj)` : `{"val1":1,"val2":2,"val3":3}`
jsfiddlehttp://jsfiddle.net/guest271314/n8jLG/
您的代码中有一个typo
错误:
此处为var obj = jQueryparseJSON( str );
应为var obj = jQuery.parseJSON( str );
相关文章:
- 如何在JavaScript中将字符串转换为函数引用
- jQuery中是否内置了任何字符串格式化函数
- Javascript,有没有一种方法可以将数组写成没有逗号或空格的单个文本字符串
- ng打开空字符串
- 正则表达式在字符串中找到base64
- 如何将字符串值从php页面发送到java脚本页面
- 子字符串/正则表达式以获取字符串中保存的 SRC 值
- 字符串在将其传递给另一个活动Android JavaScript时读取Null
- 对id以某个字符串开头的元素进行计数
- Javascript逻辑运算符和字符串/数字
- 反向字符串比较
- 如何有效地将游戏数据存储在URL查询字符串中
- 为什么我不能使用jQuery.parseJSON(json)解析json字符串
- jQuery.parseJSON()未在Windows服务器上解码有效的Json字符串
- 如何将双引号字符串用于parseJSON
- jQuery.parseJSON 不适用于给定的字符串
- 可以't$.parseJSON()当字符串保持src=“”时"或者id=“0”"属性
- jQuery.ParseJSON返回一个字符串
- JQuery.parseJSON无法使用字符串
- jQuery.parseJSON不工作,除非复制到一个不同的字符串变量