2014-12-30 77 views
0

我解析JSON字符串使用jQuery parseJSON

var jsontest = '[{"nombre":"Campa\u00f1a de prueba","parcelas":"10","stampCreacion":"2014-12-30 18:18:26","estado":"1","id":"1","active":"1","camposControl":[{"nombre":"Repetici\u00f3n","tipo":"2","id":"2","active":"1"},{"nombre":"Comentarios","tipo":"1","id":"3","active":"1"}]},{"nombre":"Campa\u00f1a2","parcelas":"10","stampCreacion":"2014-12-30 20:07:36","estado":"1","id":"2","active":"1","camposControl":[{"nombre":"Opciones","tipo":"3","id":"16","active":"1","opciones":[{"nombre":"muchas\r","id":"12","active":"1"},{"nombre":"opciones\r","id":"13","active":"1"},{"nombre":"para mi \r","id":"14","active":"1"},{"nombre":"y para ti","id":"15","active":"1"}]},{"nombre":"numerito por aqui","tipo":"2","id":"17","active":"1"}]}]'; 



var obj = $.parseJSON(jsontest); 

這似乎是根據jsonlint一個有效的JSON,但你可能會在看到小提琴它給下一個錯誤:

未捕獲的SyntaxError:意外的標記 - > jQuery的1.11.2.min.js:4

http://jsfiddle.net/6a9qLtq2/

我使用鉻BTW

回答

-2

更新的jsfiddle到:

var jsonstringify = JSON.stringify(jsontest); 
    var obj = $.parseJSON(jsonstringify); 

編碼反斜線

+1

現在我越來越: 遺漏的類型錯誤:無法使用「在」操作中搜索「694」 [{「農佈雷」:「坎帕納德... 我改變了我的PHP回聲json_encode( $ arr,JSON_UNESCAPED_UNICODE);並解決了這個問題 – user1532587

1

我看到的是與你的轉義 '\' 的錯誤。我用\\ uXXXX替換了所有的\ uXXXX代碼,並且我得到的唯一額外錯誤是用'\ r'。我刪除了「\ r的以及和得到這個工作:

var jsontest = '[{"nombre":"Campa\\u00f1a de prueba","parcelas":"10","stampCreacion":"2014-12-30 18:18:26","estado":"1","id":"1","active":"1","camposControl":[{"nombre":"Repetici\\u00f3n","tipo":"2","id":"2","active":"1"},{"nombre":"Comentarios","tipo":"1","id":"3","active":"1"}]},{"nombre":"Campa\\u00f1a2","parcelas":"10","stampCreacion":"2014-12-30 20:07:36","estado":"1","id":"2","active":"1","camposControl":[{"nombre":"Opciones","tipo":"3","id":"16","active":"1","opciones":[{"nombre":"muchas","id":"12","active":"1"},{"nombre":"opciones","id":"13","active":"1"},{"nombre":"para mi ","id":"14","active":"1"},{"nombre":"y para ti","id":"15","active":"1"}]},{"nombre":"numerito por aqui","tipo":"2","id":"17","active":"1"}]}]'; 


var obj = $.parseJSON(jsontest); 
console.log(obj); 

我不知道你用的去爲‘\ r的,但如果你所追求的回車我想你想’ \ N」。

作爲有關轉義的註釋,您必須記住,您的字符串中包含字符串,因此您必須雙重轉義(爲什麼需要兩個反斜槓而不是一個)。

哦,這裏有一個叉http://jsfiddle.net/gok31tqu/

然後進行測試,我做了另外一個叉,我用「\\ R」取代你的「\ r」和它似乎並運行:

http://jsfiddle.net/9vktyj29/

希望有幫助。

-2
use eval(jsonData) will fix this issue.. 
+0

這給了我一個語法錯誤 – user1532587

+1

可以給我的語法,你實際使用的是什麼? –

+0

不要''評估'JSON字符串使用函數(在瀏覽器或一個庫),它實際解析JSON,請不要將所有的東西都格式化爲「代碼」,只有實際的代碼(應該是明顯的:))。 –

相關問題