2015-03-18 108 views
0

JSON值我有一個input元素,看起來像這樣的值:獲取從輸入元素

value="{"logEntries":[],"value":"CHCN1","text":"CHCN AAH COMPLETE CARE (CHCN1)","enabled":true,"checkedIndices":[],"checkedItemsTextOverflows":false}" 

當我取回直通jQuery的我得到的是第一{自裹在引號中的值.. 。我如何獲得整個JSON對象?

+1

你輸入元素是完全無效的,它只能有一個'value'屬性 – adeneo 2015-03-18 21:37:56

+2

使用單引號圍繞值 – Turnip 2015-03-18 21:39:40

+1

[轉義HTML標記的屬性中的雙引號](http://stackoverflow.com/questions/8007672/escaping-the-double-quote-that-is-in-the-attribute -of-an-html-tag) – 2015-03-18 21:40:23

回答

0

在node.js的控制檯,例如,你可以運行在一個單引號字符串JSON.parse()把它變成一個可調用的JSON對象:

> value = JSON.parse('{"logEntries":[], "value":"CHCN1","text":"CHCN AAH COMPLETE CARE (CHCN1)","enabled":true,"checkedIndices":[],"checkedItemsTextOverflows":false}'); 
{ logEntries: [], 
    value: 'CHCN1', 
    text: 'CHCN AAH COMPLETE CARE (CHCN1)', 
    enabled: true, 
    checkedIndices: [], 
    checkedItemsTextOverflows: false } 
> value.value 
'CHCN1' 
> 

你不會需要jQuery的解析字符串成一個JavaScript對象。

-2

輸入字段的值(尤其是double quoutes)未正確轉義。用前導反斜槓將雙引號轉義。

+0

您不能在輸入字段中使用雙引號,該字段的值爲「」 – mplungjan 2015-03-18 21:45:23

+0

yepp,當然你是對的。應該是'"'。 – nomad 2015-03-21 12:58:16

0

我假設你有來自服務器的內容。

如果你不是做

$(function() { 
    var jsObj = {"logEntries":[],"value":"CHCN1","text":"CHCN AAH COMPLETE CARE (CHCN1)","enabled":true,"checkedIndices":[],"checkedItemsTextOverflows":false} 
    $("#inputId").val(JSON.stringify(jsObj)); 
}); 

如果沒有可能的,你需要輸入改爲

<input value='{....}' />