對應於規範(見here或here)僅"
和\
字符必須逃脫。其他一些字符可能會被轉義。所以非轉義'
字符不是一個錯誤。我想這是錯誤「無效的JSON解析器錯誤」的另一個原因。
您應該包含更多完整的JavaScript代碼,其中顯示瞭如何使用jqGrid,ASP.NET MVC控制器操作的代碼或更完整的JSON響應,它返回服務器。一般而言,您可以在不使用Json.NET(Newtosoft)或使用它或任何其他庫的情況下生成正確的JSON響應。
您應該包含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",
"",
""
]
}
]
}
我建議你分析與jqGrid的使用ASP.NET MVC的例子代碼(見here例如),並解決您的服務器代碼。
你能提供樣品嗎? – 2013-04-26 04:01:49
@Garath在代碼 – Billa 2013-04-26 04:07:51
中添加了示例JSON構造「我怎樣才能成功解析它」?在JavaScript?該對象將被序列化成json,並且可以在你想要的js中使用它。你對json對象做了什麼,它給你一個錯誤? – 2013-04-26 04:15:27