从 JsonConvert.SerializeObject(obj) 返回的 JSON 在 Json.parse 中返回错误“意外标记 &”

War*_*enG 0 .net javascript c# json asp.net-core

model.DepartmentsList = list;
model.DepartmentsListJson = JsonConvert.SerializeObject(model.DepartmentsList); 
Run Code Online (Sandbox Code Playgroud)

返回这个JSON

"[{\"DeptNo\":\"d006\",\"DeptName\":\"Production\",\"FromDate\":null,\"ToDate\":null},{\"DeptNo\" :\"d007\",\"DeptName\":\"Sales\",\"FromDate\":null,\"ToDate\":null},{\"DeptNo\":\"d009\",\ "DeptName\":\"Customer Service\",\"FromDate\":null,\"ToDate\":null},{\"DeptNo\":\"d021\",\"DeptName\":\" DEV\",\"FromDate\":null,\"ToDate\":null},{\"DeptNo\":\"d022\",\"DeptName\":\"Human Resources 5\",\" FromDate\":null,\"ToDate\":null},{\"DeptNo\":\"d023\",\"DeptName\":\"Human Resources 6\",\"FromDate\":null,\"ToDate\":null},{\"DeptNo\":\"d024\",\"DeptName\":\"Human Resources 7\",\"FromDate\":null,\"ToDate\ “:空值}]”

(忽略空值)。当我尝试在 javascript 中解析它时

var departmentsList = JSON.parse(@Model.DepartmentsListJson); 
Run Code Online (Sandbox Code Playgroud)

我收到以下消息:

Uncaught SyntaxError: Unexpected token &
Run Code Online (Sandbox Code Playgroud)

我应该使用什么来JSON从我的C#代码中返回一个有效的字符串?

nic*_*wdy 6

你有没有试过这个:

var departmentsList = JSON.parse(@Html.Raw(@Model.DepartmentsListJson)); 
Run Code Online (Sandbox Code Playgroud)

问题是您将 c# 与 razor 和 javaScript 混合使用。所以当你这样做时:

var departmentsList = JSON.parse(@Model.DepartmentsListJson);
Run Code Online (Sandbox Code Playgroud)

除非我误认为您在 c# 中访问对象而不是它包含的实际值。