2014-12-03 35 views
1

我有一個JSON字符串在ASP.NET MVC頁面顯示時,看起來像這樣使用@ Model.JsonData"是JSON字符串

[ 
    { 
    "id": 123, 
    "text": "Consumer", 
    "parent": "#"; 
    } 
] 

當我在JavaScript代碼使用相同的@ Model.JsonData它被編碼爲:

[ 
    { 
    "id": 123, 
    "text": "Consumer", 
    "parent": "#" 
    } 
] 

爲什麼JavaScript段編碼雙引號?

當雙引號進行編碼時,期待JSON數據的jstree插件不起作用。

<script> 
    $(function() { 
     $('#jstree').jstree({ 
      'core': { 
       'data': function() 
       { 
        var jsonTreeData = @Model.JsonTreeData; 
        return jsonTreeData; 
       } 
      } 
     }); 
    }); 
</script> 

錯誤消息: 「SCRIPT1015:未終止的字符串常量」

+0

''變種JSON = JSON.parse('@模型替換&quot; .JsonData')'' – 2014-12-03 10:24:11

+0

以上評論不起作用,因爲@Model。 JsonTreeData自動編碼並引發「SCRIPT1015:未終止的字符串常量」 – 2014-12-03 10:47:51

+0

可能的重複[如何從JavaScript中刪除"?](http://stackoverflow.com/questions/9244824/how-to-remove-quot-from -my-json-in-javascript) – 2015-04-23 10:19:55

回答

1

"

var data = JSON.parse("[{&quot;id&quot;: 123,&quot;text&quot;: &quot;Consumer&quot;,&quot;parent&quot;: &quot;#&quot;}]".replace(/&quot;/g,'"')); 
 

 
console.log(data);

+0

問題是jstree的JavaScript代碼片段中的編碼字符串引發錯誤:「SCRIPT1015:Unterminated string constant」 – 2014-12-03 10:49:34