Соответствует спецификации (см here или here) только "
и \
символы должны быть убежали. Некоторые другие символы может быть сбежал. Поэтому символ unescaped '
не является ошибкой. Я полагаю, что есть еще одна причина ошибки «Недопустимая ошибка JSON Parser».
Вы должны включить более полный код JavaScript, который показывает, как вы используете jqGrid, код действия ASP.NET MVC или более полный ответ JSON, который возвращает сервер. В общем случае вы можете получить правильный ответ JSON без Json.NET (Newtosoft) или с ним или с любой другой библиотекой.
Вы должны включить опцию autoencode: true
для корректного отображения любых текстовых данных в jqGrid. Вы должны использовать опцию datatype: "json"
и jsonReader
(см. the documentation). Так что недостаточно просто создавать хорошо форматированные JSON или XML-данные для корректного отображения данных в jqGrid. Может потребоваться включить опции jqGrid, которые дают информацию о точном формате данных.
ОБНОВЛЕНО: Данные JSON, которые вы опубликовали, действительно повреждены. jsonlint.org - это хорошее место, где вы можете проверить данные JSON.Возможно, вы пытаетесь получить данные в формате JSON вручную, поскольку данные абсолютно неправильно:
{
"total": 1,
"page": 1,
"records": 3,
"rows": [
{
"i": 0,
"cell": "", <---- it must be "cell": [""
"1",
"1",
"DesSinglApostropAndURLhasEnterKeyChar",
"Samp'le value",
"http://google.com/Dashboard.aspx?ParcelNbr= {SITE_APN}",
"False",
"",
""
]
},
"i": 1, <--- it must be {"i": 1
"cell": "",
"2",
"2",
"DesWithSlashAndURLwithSlash",
"Sample\value2", <--- it must be "Sample\\value2" or "Sample value2"
"http://Googole.com/Dashboard.aspx?ParcelNbr={SITE_APN}&ABC=\XYZ", <--- \XYZ is WRONG
"False",
"",
""
]
},
{
"i": 2,
"cell": [
"",
"3",
"3",
"DesWithAmpersand",
"Sample & value3"","http: //Googole.com","False","",""]}]} <-- "Sample & value3"" is WRONG
Данные содержат 5 синтаксических ошибок:
- использование
"cell": ""
вместо "cell": [""
- использование
}, "i": 1,
вместо }, {"i": 1,
- использование
"Sample\value2"
вместо "Sample value2"
или "Sample\\value2"
- использование
"http://Googole.com/Dashboard.aspx?ParcelNbr={SITE_APN}&ABC=\XYZ"
вместо "http://Googole.com/Dashboard.aspx?ParcelNbr={SITE_APN}&ABC=XYZ"
или "http://Googole.com/Dashboard.aspx?ParcelNbr={SITE_APN}&ABC=\\XYZ"
- использование
"Sample & value3""
вместо "Sample & value3"
или "Sample & value3\""
Более того, вы использовали i
свойство вместо id
("i": 1
должен быть закреплен "id": 1
). Это не ошибка в JSON, но вы должны создать данные для jqGrid, поэтому вы должны придерживаться формата, который будет ожидать от jqGrid. См. the documentation. Фиксированный ответ JSON должно быть что-то вроде
{
"total": 1,
"page": 1,
"records": 3,
"rows": [
{
"id": 0,
"cell": [
"",
"1",
"1",
"DesSinglApostropAndURLhasEnterKeyChar",
"Samp'le value",
"http://google.com/Dashboard.aspx?ParcelNbr= {SITE_APN}",
"False",
"",
""
]
},
{
"id": 1,
"cell": [
"",
"2",
"2",
"DesWithSlashAndURLwithSlash",
"Sample value2",
"http://Googole.com/Dashboard.aspx?ParcelNbr={SITE_APN}&ABC=XYZ",
"False",
"",
""
]
},
{
"id": 2,
"cell": [
"",
"3",
"3",
"DesWithAmpersand",
"Sample & value3",
"http: //Googole.com",
"False",
"",
""
]
}
]
}
Я рекомендую вам проанализировать код примеров использования ASP.NET MVC с jqGrid (см here, например) и исправить код сервера.
Не могли бы вы предоставить образец? –
@ Garath добавил образец конструкции JSON в код – Billa
«Как я могу проанализировать это успешно»? В javascript? Этот объект будет сериализован в json просто отлично и может использоваться в js в любом случае, если вы этого хотите. Что именно вы делаете с объектом json, что он дает вам ошибку? –