2014-12-03 2 views
1

У меня есть строка JSON, который выглядит следующим образом, когда отображается в странице ASP.NET MVC с помощью @ Model.JsonData" является JSON строка

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

Когда я использую тот же @ Model.JsonData в коде JavaScript он кодируется как:

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

Почему сегмент JavaScript кодирует двойные кавычки?

Когда закодированы двойные кавычки, плагин jstree, ожидающий данные JSON, не работает.

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

Сообщение об ошибке: "SCRIPT1015: незавершенный строковая константа"

+0

'' вар JSon = JSON.parse ('@ Модель .JsonData ') '' –

+0

Вышеприведенный комментарий не работает, потому что @Model. JsonTreeData автоматически кодирует и генерирует «SCRIPT1015: Unterminated string constant» –

+0

Возможный дубликат [Как удалить " из моего Json в javascript?] (Http://stackoverflow.com/questions/9244824/how-to-remove-quot-from -my-json-in-javascript) –

ответ

1

Заменить &quot; с "

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

Проблема заключается в том, что закодированная строка в фрагменте кода javascript для jstree вызывает ошибку: «SCRIPT1015: Unterminated string constant» –

Смежные вопросы