powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Не валидный json с сервера
20 сообщений из 20, страница 1 из 1
Не валидный json с сервера
    #38597358
Deza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть asp.net Web form
есть ajax запрос
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
.ajax({                url: location.href,
                type: "post",
                data: postData,
                success: function(response) {
                   
                    if (jQuery.type(response) == "string")
                        response = JSON.parse(response.substring(2, response.length));
                    self._finishServerOperation(response);

                }
            });



сервер отвечает


Код: c#
1.
2.
3.
4.
5.
6.
7.
SerializeDataToJson(
                                new
                                    {
                                        data,
                                        errorMsg,
                                        error
                                    })


json имеет вид "{\"data\":\"blablabla...\"}"
на клиенте получаю в response "{0|"data":"blablabla..."}"
...
Рейтинг: 0 / 0
Не валидный json с сервера
    #38597359
Deza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
откуда берется 0| не могу понять
...
Рейтинг: 0 / 0
Не валидный json с сервера
    #38597378
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dezaполучаю в responseдо преобразования или после? и зачем там обрезание производится?
...
Рейтинг: 0 / 0
Не валидный json с сервера
    #38597386
Deza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro и зачем там обрезание производится?

с сервера приходит строка вида

Код: c#
1.
"{0|\"data: \"тут данные\", \"errorMsg\": \"\", \"error\" : \"\"}"


из за 0| она не может преобразоваться в объект, поэтому и приходится отрезать правильную часть, на сервере в дебаге, где я могу смотреть, строка имеет правильный вид
...
Рейтинг: 0 / 0
Не валидный json с сервера
    #38597388
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а шо таке SerializeDataToJson ?
...
Рейтинг: 0 / 0
Не валидный json с сервера
    #38597393
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Паганельа шо таке SerializeDataToJson ?А какая разница, автор ведь показывает строку на сервере после сериализации. надо полагать - оболочка над JavaScriptSerializer
...
Рейтинг: 0 / 0
Не валидный json с сервера
    #38597395
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProПаганельа шо таке SerializeDataToJson ?А какая разница, автор ведь показывает строку на сервере после сериализации. надо полагать - оболочка над JavaScriptSerializerа, ну тогда значит это баг JavaScriptSerializer
...
Рейтинг: 0 / 0
Не валидный json с сервера
    #38597399
Deza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProПаганельа шо таке SerializeDataToJson ?А какая разница, автор ведь показывает строку на сервере после сериализации. надо полагать - оболочка над JavaScriptSerializer
да, вы правы

Код: c#
1.
2.
3.
4.
5.
private string SerializeDataToJson(object data)
		{
            var serialaz = new JavaScriptSerializer() { MaxJsonLength = _control.MaxJsonLength};
			return serialaz.Serialize(data);
		}
...
Рейтинг: 0 / 0
Не валидный json с сервера
    #38597400
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dezaиз за 0| она не может преобразоваться в объект, поэтому и приходится отрезать правильную часть, на сервере в дебаге, где я могу смотреть, строка имеет правильный видА, что, разве после применения substring(2, response.length) она станет иметь правильный вид?

Что будет, если отправить с сервера просто тектовую строку "{\"data\":\"blablabla...\"}" - что примете на клиенте?
...
Рейтинг: 0 / 0
Не валидный json с сервера
    #38597401
Deza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПаганельShocker.Proпропущено...
А какая разница, автор ведь показывает строку на сервере после сериализации. надо полагать - оболочка над JavaScriptSerializerа, ну тогда значит это баг JavaScriptSerializer

после выполнения метода json валиден, что то происходит в невидимом для дебага коде:(
...
Рейтинг: 0 / 0
Не валидный json с сервера
    #38597404
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dezaпосле выполнения метода json валиден, что то происходит в невидимом для дебага коде:(вопрос в том, что реально отправил сервер и что реально появилось на клиенте

по первому вопросу - отправьте просто текстовую строку, представляющую JSON

по второму вопросу - примите строку не через аякс, обычным гетом и тумо отобразите в браузере
...
Рейтинг: 0 / 0
Не валидный json с сервера
    #38597405
Deza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Shocker.Pro]Dezaиз за 0| она не может преобразоваться в объект, поэтому и приходится отрезать правильную часть, на сервере в дебаге, где я могу смотреть, строка имеет правильный видА, что, разве после применения substring(2, response.length) она станет иметь правильный вид?
да, выполни в консоле

Код: javascript
1.
2.
3.
var json = "0|{\"data\":\"iVBORw0KGgoAAAANSUhEUgAAAfQAAAF3CA\"}";
var response = JSON.parse(json.substring(2, json.length));
response 
...
Рейтинг: 0 / 0
Не валидный json с сервера
    #38597407
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dezaда, выполни в консолезачем мне это выполнять в консоли, если изначально ошибка была такая:
Код: plaintext
"{0|\"data: \"тут данные\", \"errorMsg\": \"\", \"error\" : \"\"}"
а потом чудесным образом превратилась в такую:
Код: plaintext
"0|{\"data\":\"iVBORw0KGgoAAAANSUhEUgAAAfQAAAF3CA\"}"

путаетесь в показаниях, молодой человек
...
Рейтинг: 0 / 0
Не валидный json с сервера
    #38597408
Deza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProDezaда, выполни в консолезачем мне это выполнять в консоли, если изначально ошибка была такая:
Код: plaintext
"{0|\"data: \"тут данные\", \"errorMsg\": \"\", \"error\" : \"\"}"
а потом чудесным образом превратилась в такую:
Код: plaintext
"0|{\"data\":\"iVBORw0KGgoAAAANSUhEUgAAAfQAAAF3CA\"}"

путаетесь в показаниях, молодой человек

виноват, в первый раз набирал в ручную, во второй раз скопировал
...
Рейтинг: 0 / 0
Не валидный json с сервера
    #38597409
Deza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не валидный json такой

Код: plaintext
"0|{\"data\":\"iVBORw0KGgoAAAANSUhEUgAAAfQAAAF3CA\"}"
...
Рейтинг: 0 / 0
Не валидный json с сервера
    #38597410
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тогда по substring вопросов нет
и тогда возникает великое подозрение, что в response на стороне сервера пишет кто-то еще, помимо сериализатора. Код записи вы не приводите. Способ проверки я сказал выше - ждем результатов
...
Рейтинг: 0 / 0
Не валидный json с сервера
    #38597444
Deza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо всем, источник проблемы найден
...
Рейтинг: 0 / 0
Не валидный json с сервера
    #38597479
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Deza,
Чешь вы себя мучаете так, зачем масло масленное
поставьте тип данных dataType: "json" в запросе.
и прилетать будет объект а не строка в response
парсер там встроен в библиотеке.
А не валидность будете отлавливать в секции фудло :
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.responseText);
}
...
Рейтинг: 0 / 0
Не валидный json с сервера
    #38597516
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DezaСпасибо всем, источник проблемы найденхоть бы сказал какой
ато я слегка офигел когда после фигурной скобки ноль увидел
...
Рейтинг: 0 / 0
Не валидный json с сервера
    #38597928
Deza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПаганельDezaСпасибо всем, источник проблемы найденхоть бы сказал какой
ато я слегка офигел когда после фигурной скобки ноль увидел

в проекте используются UserControl и в начале json имеет индификаторы - |,s,e которые распариваются в

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
function WebForm_ExecuteCallback(callbackObject) {
    var response = callbackObject.xmlRequest.responseText;
    if (response.charAt(0) == "s") {
        if ((typeof(callbackObject.eventCallback) != "undefined") && (callbackObject.eventCallback != null)) {
            callbackObject.eventCallback(response.substring(1), callbackObject.context);
        }
    }
    else if (response.charAt(0) == "e") {
        if ((typeof(callbackObject.errorCallback) != "undefined") && (callbackObject.errorCallback != null)) {
            callbackObject.errorCallback(response.substring(1), callbackObject.context);
        }
    }
    else {
        var separatorIndex = response.indexOf("|");
        if (separatorIndex != -1) {
            var validationFieldLength = parseInt(response.substring(0, separatorIndex));
            if (!isNaN(validationFieldLength)) {
                var validationField = response.substring(separatorIndex + 1, separatorIndex + validationFieldLength + 1);
                if (validationField != "") {
                    var validationFieldElement = theForm["__EVENTVALIDATION"];
                    if (!validationFieldElement) {
                        validationFieldElement = document.createElement("INPUT");
                        validationFieldElement.type = "hidden";
                        validationFieldElement.name = "__EVENTVALIDATION";
                        theForm.appendChild(validationFieldElement);
                    }
                    validationFieldElement.value = validationField;
                }
                if ((typeof(callbackObject.eventCallback) != "undefined") && (callbackObject.eventCallback != null)) {
                    callbackObject.eventCallback(response.substring(separatorIndex + validationFieldLength + 1), callbackObject.context);
                }
            }
        }
    }
}
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Не валидный json с сервера
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]