如何将2D数组转换为json数组并使用ajax发送到视图。
我使用了return Json(JsonConvert.SerializeObject(symboltable2), JsonRequestBehavior.AllowGet);
将其转换为json并返回。问题是json字符串包含双引号,并以"[["A","B"],["C","D"]]"
开头和结尾。为了对此进行反序列化,我需要消除双引号,并在末尾添加大括号。
但是我需要将其转换为[["A","B"],["C","D"]]
之类的json数组
任何想法如何做到这一点?
答案 0 :(得分:0)
您只需使用String.Trim
删除引号即可。
char[] charsToTrim = { '"' };
string json = Json(JsonConvert.SerializeObject(symboltable2), JsonRequestBehavior.AllowGet);
string result = json.Trim(charsToTrim);
答案 1 :(得分:0)
您是说要删除引号和花括号(花括号)。使用Country code - Region - postal - thrashhold - shipping cost
1. FR - Corsica - * - 0 - 18
2. * - * - * - 0 - 50
.Remove()
答案 2 :(得分:0)
在我看来,您正在对数组进行双序列化,这将解释多余的引号。 Json.Net JsonConvert.SerializeObject()
方法和Json()
MVC方法均执行序列化。您应该只使用其中之一。
因此,要么删除对JsonConvert.SerializeObject()
的调用,然后让Json()
处理序列化...
return Json(symboltable2, JsonRequestBehavior.AllowGet);
或者,如果您更喜欢使用Json.Net,则使用Content()
方法而不是Json()
方法返回结果:
return Content(JsonConvert.SerializeObject(symboltable2), "application/json");
如果使用第二种方法,则还需要确保控制器方法的返回类型为ContentResult
或ActionResult
(与JsonResult
相对)。 / p>