Извините.. Я знаю, что меня обвинят в том, что я задаю вопрос, который уже задавался много раз, но я отчаянно искал, гуглил и пробовал всевозможные предложения, но ничего не помогло мне.
У меня есть служба, возвращающая некоторые данные JSON с апострофом. Таким образом, "Mike's example record
" возвращается следующим образом:
{
"Results": [
{
"ID": 139,
"Name": "Mike\u0027s example record",
"CedentName": "Mikes Business Partner"
}],
"Success": "1"
}
Что я хочу знать, так это то, как заставить jqGrid преобразовать этот код \u0027
обратно в апостроф.
Я знаю, я знаю, это должна быть очевидная настройка, но я искал, гуглил, пробовал добавлять функции к атрибуту jqGrid datatype
и так далее, но ничего не сработало.
Вот код, который я использую для загрузки данных JSON и заполнения jqGrid:
$("#tblCustomers").jqGrid({
url: '/JSON/GetCustomers.aspx',
contentType: "application/json; charset=utf-8",
datatype: "json",
viewrecords: true,
loadonce: true,
jsonReader: {
root: "Results", //arry containing actual data
id: "ID", //index of the column with the PK in it
repeatitems: false
},
. . .
. . .
autoencode: true,
caption: ""
});
Еще вопрос: ради интереса добавил еще одну запись с речевыми метками.
Как ни странно, функция JavaScriptSerializer()
выдала неверный JSON, а затем в jqGrid ничего не отобразилось!!
string JSON = new JavaScriptSerializer().Serialize(listOfRecords).ToString();
создал следующую недопустимую строку JSON.
Обратите внимание, что он не закодировал речевую метку в \u0022
:
{
"Results": [
{
"ID": 140,
"Name": "Mikes \\"Speechmark test\\" RP",
"CedentName": "Mikes Cedent"
},
Я не могу быть единственным, кто замечает эту причуду, можно...?
Немного позже...
Прочитав эту статью и увидев, как JavaScriptSerializer()
форматирует даты, используя собственный неподдерживаемый формат Microsoft:
StartDate: "\/Date(1401573600000)\/",
..Я понял, что JavaScriptSerializer()
довольно неприятный, и заменил его на JSON.Net.
Как ни странно, этот класс также с треском терпит неудачу, когда дело доходит до сериализации значений, содержащих речевые метки, и с радостью создает недопустимые строки JSON (у него такой же неправильный формат, как показано выше, с речевой меткой, оставленной в середине поля). стоимость).
Тем не менее, он, по крайней мере, оставляет апострофы в покое, поэтому я могу просматривать свои данные в jqGrid без необходимости форматирования.