如何格式化json数组

问题描述 投票:1回答:3

如何将2D数组转换为json数组并使用ajax发送到视图。

我用过return Json(JsonConvert.SerializeObject(symboltable2), JsonRequestBehavior.AllowGet);

将它转换为json并返回。问题是json字符串包含起始和结尾的双引号为"[["A","B"],["C","D"]]"。为了去除这个,我需要摆脱双引号添加大括号到结尾和开头。

但我需要的是将它转换为像[["A","B"],["C","D"]]这样的json数组,任何想法如何做到这一点?

c# arrays json json.net asp.net-ajax
3个回答
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");

如果你使用第二种方法,你还需要确保你的控制器方法的返回类型是ContentResultActionResult(而不是JsonResult)。


0
投票

你说你想摆脱引号和大括号(大括号)。使用.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;

0
投票

您可以使用String.Trim删除引号。

char[] charsToTrim = { '"' };
string json = Json(JsonConvert.SerializeObject(symboltable2), JsonRequestBehavior.AllowGet);
string result = json.Trim(charsToTrim);
© www.soinside.com 2019 - 2024. All rights reserved.