Newtonsoft.формат JSON.JsonReaderException: Unterminated string. Ожидаемый разделитель

Я получаю это исключение во время синтаксического анализа строки, содержащей JSON:

Newtonsoft.Json.JsonReaderException: Unterminated string. Expected delimiter: ". Path '[114].var2', line 1, position 431602.

поэтому я пошел именно в эту (431602) позицию и обнаружил, что она здесь: (...)lZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKtljwwl5izmqk*jp*KWmp6ipqrKztLW2t7i5usLDxMXGx8jJytlt1nxw1(...)

Так что это просто символы "jp", которые не должны быть чем-то неправильным.

что может быть причиной этого исключения?

изменить Чтобы быть более конкретным, я также поставил целую строку с несколькими переменными вокруг него:

"var1":"946","var2":"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","var3":"77241"

2 ответов


Я заметил, что это, похоже, JPEG с кодировкой base64. В большинстве случаев было бы лучше и проще, чтобы ваш сервер отправлял jpeg, а не JSON.

public ActionResult ShowImage() 
{
    var file = Server.MapPath("~/App_Data/UserUpload/asd.png");
    return File(file, "image/png", Path.GetFileName(file));
}

посмотреть первоисточник по этой ссылке.


советы по устранению неполадок:

Если вы не можете поместить всю строку, вы можете сделать ее меньше, чтобы изолировать ошибку.

Попробуйте удалить блок символов за раз (я бы использовал двоичный метод левой/правой половины эксперимента), пока он не перестанет ломаться. Тогда присмотритесь к плохой половине. Если вы можете получить плохую половину достаточно маленькой и не можете увидеть ошибку, пожалуйста, опубликуйте ее.

Я предполагаю, что столбец, заданный ошибкой, не учитывается так же, как вы их считаете.