Как jQuery десериализовывает JSON?

Я использую jQuery.ajax (...) для получения данных JSON из сервиса MVC ASP.NET. Когда сервер встречается с исключением, я передаю 400 состояний Bad Request обратно клиенту и отправляю мое исключение как JsonResult:

Response.StatusCode = 400;
return Json(new { ex.Message, ex.StackTrace });

И вот мой код jQuery:

$.ajax(
{
    type: "POST",
    url: deleteUrl,
    dataType: "json",
    data:
    {
        dataItems: dataItems,
        toJSON: true
    },
    success: function(msg)
    {
        alert(msg[i].dataItem);
    },
    error: function(request, status, error)
    {
        alert(request.responseText);
    }
});

Мой код ASP.NET отправляет меня в ошибочный раздел моего кода JavaScript, и ошибочный блок только позволяет мне читать request.responseText, а не работать с объектами, возвращенными из сервера.

Теперь, вместо того, чтобы добавить в еще одном JavaScript включают во что-то как json_parse и просто десериализовывают мое Исключение, я хотел бы просто усилить тот же синтаксический анализатор JSON, который использует jQuery, хотя я не могу найти, с готовностью находят информацию о нем.

Кто-то может указать на меня в правильном направлении?

5
задан Peder Rice 21 January 2010 в 20:55
поделиться

3 ответа

jQuery Используется для использования , если я не ошибаюсь. С 1,4, он использует преимущества родного JSON Deserializer, если есть (например, есть один в Firefox)

6
ответ дан 14 December 2019 в 04:38
поделиться

Я думаю, что в JavaScript, если у вас есть строка JSON, вы можете использовать Eval, чтобы получить объект, т. Е.:

var myObject = eval('(' + myJSONtext + ')');

Есть больше информации об этом на http: // www. json.org/js.html

2
ответ дан 14 December 2019 в 04:38
поделиться

Может быть, это может помочь вам. Я использую его для удаления комментариев и пробелов в моем JSON:

json = eval( o.responseText
    .replace( /\/\*(.*)\*\/g, ' ' )
    .replace( /([^\:])\/\/[^\n]*\n/g, '$1' )
    .replace( /^\s|\s+|\s$/g, '' ) )
0
ответ дан 14 December 2019 в 04:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: