У меня есть данные, которые включают метки в дюймах и футах (\ "и \ '), с ответом на вызов AJAX, возвращающий допустимый JSON (экранированный \" и нет "), который я использую в форме HTML.
со следующим ответом JSON: (другие элементы могут иметь несколько комбинаций цена / размер, следовательно, список; этот пример для краткости)
{"pl":{"common":"","price":[219],"size":["2\""]}}
Обратите внимание, что размер в 2 дюйма имеетJSON избежал \ ".
При использовании следующего javascript (с использованием jQuery .getJSON) возвращаемые данные не включают в себя экранированный символ:
$.getJSON(url,
{data},
function(json){
var obj = json.pl.size;
var options = '<option value="">Size</option>';
for (var i = 0; i < obj.length; i++) {
// possible for size to have \' and/or \" chars
options += '<option value="' + obj[i] + '">' + obj[i] + '</option>';
}
// populate the select box with the options
});
Функция успеха возвращает:
json: Object
pl: Object
common: ""
price: Array[1]
size: Array[1]
0: "2""
Обратите внимание, что у данных size[0]
больше нет экранированных "
Вопрос 1. Почему экранированные данные JSON не учитываются в ответе об успешном выполнении?
И для хихиканья:
- Какой лучший способ избежать этих данных в HTML-форме.