如何格式化json数组
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何格式化json数组相关的知识,希望对你有一定的参考价值。
如何将2D数组转换为json数组并使用ajax发送到视图。
我用过return Json(JsonConvert.SerializeObject(symboltable2), JsonRequestBehavior.AllowGet);
将它转换为json并返回。问题是json字符串包含起始和结尾的双引号为"[["A","B"],["C","D"]]"
。为了去除这个,我需要摆脱双引号添加大括号到结尾和开头。
但我需要的是将它转换为像[["A","B"],["C","D"]]
这样的json数组,任何想法如何做到这一点?
答案
在我看来,你正在对数组进行双序列化,这可以解释额外的引号。 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
)。
另一答案
你说你想摆脱引号和大括号(大括号)。使用.Remove()
这很简单
string json = Json(JsonConvert.SerializeObject(symboltable2), JsonRequestBehavior.AllowGet);;
json = json.Remove(json.Substring(0, 1));
json = json.Remove(json.Substring(json.Length - 1, 1));
return json;
另一答案
您可以使用String.Trim
删除引号。
char[] charsToTrim = { '"' };
string json = Json(JsonConvert.SerializeObject(symboltable2), JsonRequestBehavior.AllowGet);
string result = json.Trim(charsToTrim);
以上是关于如何格式化json数组的主要内容,如果未能解决你的问题,请参考以下文章