[英]Jquery/.NET Core JSON returned cannot be parsed
這是我發送給控制器的內容:
“ [{\\” PropertyName \\“:\\” fewfewf \\“,\\” Key \\“:\\” ewgwewe \\“,\\” PrimaryValue \\“:\\” \\“,\\” SecondaryValue \\“:\\” \\“,\\ “ TertiaryValue \\”:\\“ \\”,\\“ MinimumValue \\”:\\“ \\”,\\“ MaximumValue \\”:\\“ \\”},{\\“ PropertyName \\”:\\\\“ rwhjyjut \\”,\\“ Key \\ “:\\” jtyjyt \\“,\\” PrimaryValue \\“:\\” \\“,\\” SecondaryValue \\“:\\” \\“,\\” TertiaryValue \\“:\\” \\“,\\” MinimumValue \\“:\\” \\ “,\\” MaximumValue \\“:\\” \\“}]”
這是我解析並再次對其進行序列化后從服務器收到的信息。
我很困惑,因為我什么都沒改變。 當我嘗試將其解析為Jquery時,出現此錯誤:
未捕獲到的SyntaxError:意外的令牌和位置2中的JSON
這是jQuery代碼
if ("@Model.FormPropertiesList".length !== 0) {
console.log($.parseJSON("@Model.FormPropertiesList"));
}
我想念什么嗎?
編輯:這是我的服務器端代碼
var list = JsonConvert.DeserializeObject<List<NewFormPropertyViewModel>>(Input.FormPropertiesList);
Input.FormPropertiesList = JsonConvert.SerializeObject(list);
return View("Create", Input);
這就是我將字符串轉換為JSON的方式
$("#@Html.IdFor(m => m.FormPropertiesList)").val(JSON.stringify(dataSet));
首先替換您的“”
var serverrep= "[{"PropertyName":"fewfewf","Key":"ewgwewe","PrimaryValue":"","SecondaryValue":"","TertiaryValue":"","MinimumValue":"","MaximumValue":""}]" var serverRepWithoutQuots=serverrep.replace(/"/g, '"'); console.log(serverRepWithoutQuots) console.log(JSON.parse(serverRepWithoutQuots))
將JSON傳遞到模板然后傳遞給Django中的js文件時,出現了這樣的問題。 在Django中執行此操作時,您將從上下文視圖中傳遞某些內容,然后在Django模板中執行以下操作
var someName = {{ fromView }};
我把它用雙引號引起來
var someName = "{{ fromView }}";
因此它在轉義的JSON中轉義了雙引號。 我花了大約2個小時的時間來弄清楚到底是什么原因,而我實際上只是將雙引號更改為單引號,因為它是將其讀取為帶雙引號的字符串,並且在其中包含另一個帶有雙引號的字符串(json字符串)
var someName = '{{ fromView }}';
關鍵是我將檢查JSON以確保您沒有以錯誤的方式傳遞它,並且編碼不正確/在某處添加了額外的引號
該字符串已被HTML編碼。 您可以使用@HTML.Raw
告訴razor將string
原樣放置。 字符串被編碼的原因之一是出於安全目的。 假設您正在嘗試顯示剛從數據庫中獲取的某些數據,並且該數據具有一些“惡意” JavaScript,盡管此代碼對數據庫無害,但是一旦呈現視圖,它將影響客戶端。 你可以試試:
if ("@Model.FormPropertiesList".length !== 0) {
console.log(JSON.parse("@HTML.Raw(Model.FormPropertiesList)"));
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.