Christopher Fernandes Ответов: 2

Невозможно зациклить значение регулярного выражения в данных JSON с помощью jquery


Ниже приведены мои данные JSON из asp.net веб-сервис

d:"[{"ID":"2","Name":"Office Address","Desc":"Office Address","Check":"True","Code":"/^[a-zA-Z0-9\s\:\-]+$","CreatedBy":"felixd","CreatedDateTime":"2/18/2017 8:05:24 PM","UpdatedBy":"","UpdatedDateTime":"","IsActive":"True","ActiveStatus":"Yes","FlagStatus":"Yes"}]"

при попытке итерации данных с помощью приведенного ниже кода успеха jQuery ajax
success: function (response) {
  if (response.d != '') {
    var list = JSON.parse(response.d);
    $.each(list, function (k, v) {
      console.log(response.d[k].ID);
    });
   }
},
error: function(response){}

Я получаю следующую ошибку
Цитата:
Uncaught SyntaxError: неожиданный токен s в JSON в позиции 95
в формате JSON.синтаксический анализ (&ЛТ;анонимный&ГТ;)
at Object. success (MasterList. aspx:49)
на огонь (на jQuery-1.12.4.ДШ:3232)
на объект.fireWith [как resolveWith] (библиотека jQuery-1.12.4.ДШ:3362)
в сделано (на jQuery-1.12.4.ДШ:9840)
на запросы XMLHttpRequest.обратного вызова (используется jQuery-1.12.4.ДШ:10311)
success @ AddressTypeList. aspx:49
fire @ jquery-1.12.4. js:3232
fireWith @ jquery-1.12.4. js:3362
done @ jquery-1.12.4. js:9840
обратный вызов @ jquery-1.12.4. js:10311

как устранить эту ошибку?
Пожалуйста, посоветуйте
Спасибо

Что я уже пробовал:

Я попробовал удалить данные в JSON.разобрать

Я получаю следующую ошибку
Uncaught TypeError: Cannot use 'in' operator to search for 'length' in [{"ID":"2","Name":"Office Address","Desc":"Office Address","Check":"True","Code":"/^[a-zA-Z0-9\s\:\-]+$","CreatedBy":"felixd","CreatedDateTime":"2/18/2017 8:05:24 PM","UpdatedBy":"","UpdatedDateTime":"","IsActive":"True","ActiveStatus":"Yes","FlagStatus":"Yes"}]
    at isArrayLike (jquery-1.12.4.js:569)
    at Function.each (jquery-1.12.4.js:367)
    at Object.success (MasterList.aspx:50)
    at fire (jquery-1.12.4.js:3232)
    at Object.fireWith [as resolveWith] (jquery-1.12.4.js:3362)
    at done (jquery-1.12.4.js:9840)
    at XMLHttpRequest.callback (jquery-1.12.4.js:10311)

Karthik_Mahalingam

данный json выглядит нормально.

Christopher Fernandes

он разбивается на \s в значении регулярного выражения. он не может избежать \s

2 Ответов

Рейтинг:
1

Karthik_Mahalingam

попробовать это

var jsonstr = JSON.stringify(response.d);
var json = JSON.stringify(jsonstr);


Рейтинг:
0

Bryian Tan

Эти две строки кажутся неправильными

d:"[{"ID":"2","Name":"Office Address","Desc":"Office Address","Check":"True","Code":"/^[a-zA-Z0-9\s\:\-]+$","CreatedBy":"felixd","CreatedDateTime":"2/18/2017 8:05:24 PM","UpdatedBy":"","UpdatedDateTime":"","IsActive":"True","ActiveStatus":"Yes","FlagStatus":"Yes"}]"
console.log(response.d[k].ID);

Если вы заметили это, то d-это строка, и вы не можете получить доступ к ней с помощью значения ключа.

С другой стороны, если d-массив, то код будет работать
var d =[{"ID":"2","Name":"Office Address","Desc":"Office Address","Check":"True","Code":"/^[a-zA-Z0-9\s\:\-]+$","CreatedBy":"felixd","CreatedDateTime":"2/18/2017 8:05:24 PM","UpdatedBy":"","UpdatedDateTime":"","IsActive":"True","ActiveStatus":"Yes","FlagStatus":"Yes"}];
console.log(d[0].ID);

Как и указал Питер, код нуждается в JSON.parse. См. ниже о том, как получить доступ к значению после синтаксического анализа
var data = JSON.parse(d);
$.each(data, function(i, item) {
    x +='ID: ' + item["ID"] + '<br/>Name: ' + item["Name"];
    console.log(item["ID"]);
});

Вот вам пример.
https://jsfiddle.net/0hnkznqq/2/

в основном d в этом примере = response.d