2013-01-20 60 views
1

我有這樣的JSON字符串:jQuery的accesing JSON元素

{"image":[ 
    {"img":"_files\/image\/images\/firstimage.jpg","alt":"firstimage alt text"}, 
    {"img":"secondimage.jpg","alt":"secondimage alt text"} 
]} 

的JSON字符串是從一個textarea摘下來,然後存儲在變量 '內容'

var content = $("textarea").val(); 

我想訪問元素:

alert(content["image"][0]["img"]); 

,但我得到ERR或:

TypeError: content.image is undefined.

最後,我想通過更改和添加元素進行操作的JSON字符串。

我在這裏做錯了什麼?

UPDATE

$ .parseJSON做的工作:

var content = $.parseJSON($("textarea").val()); 
+0

試試這個'無功內容=的eval($( 「文本區域」)VAL());'你必須將它'json'對象 – DON

+0

我不得不做出評估和演示少EVAL通過移除大寫字母E ;-)現在,我得到一點點進一步的和正在運行到錯誤 語法錯誤:無效的標籤 – klaaz

+0

當你做一個的console.log(內容),你得到什麼;? –

回答

5

如果你從一個textarea採摘JSON字符串,你必須先將其轉換爲JavaScript對象,前使用它。使用時,如$.parseJSON()

var content = $.parseJSON($("textarea").val()); 

另外,還有一個原生的JavaScript功能JSON.parse()most browsers做到這一點:

var content = JSON.parse($("textarea").val()); 
3

它不會直接向解析JSON,而不是你需要先不要

var content = JSON.parse($("textarea").val()); 

這應該然後允許您使用一般的JSON操作

您的JSON檢索

例子可以是這樣的

content.image[0]['alt']