我有这个JSON字符串:
{"image":[
{"img":"_files\/image\/images\/firstimage.jpg","alt":"firstimage alt text"},
{"img":"secondimage.jpg","alt":"secondimage alt text"}
]}
从textarea中挑选JSON字符串,然后将其存储在变量'content'
中var content = $("textarea").val();
我正在尝试访问这些元素:
alert(content["image"][0]["img"]);
但是我收到了错误:
TypeError:content.image未定义。
最终我想通过更改和添加元素来操纵JSON字符串。
我在这里做错了什么?
更新
$。parseJSON完成了这项工作:
var content = $.parseJSON($("textarea").val());
答案 0 :(得分:5)
如果您从textarea中选择JSON 字符串,则必须先将其转换为JavaScript对象,然后才能使用它。使用例如$.parseJSON()
:
var content = $.parseJSON( $("textarea").val() );
或者,JSON.parse()
中有一个原生JavaScript函数most browsers来执行此操作:
var content = JSON.parse( $("textarea").val() );
答案 1 :(得分:3)
它不会直接解析为JSON而是你需要先做
var content = JSON.parse($("textarea").val());
这应该允许您使用一般的JSON操作
您的JSON检索示例可能是这样的
content.image[0]['alt']