如何格式化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");

如果你使用第二种方法,你还需要确保你的控制器方法的返回类型是ContentResultActionResult(而不是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数组的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Ios 中解析数组数据中的嵌套 Json 对象

如何访问json中的数组元素?

如何创建片段以重复变量编号中的代码行

怎么将json对象添加进json数组中

如何在 Reactjs 中添加丰富的代码片段?

java中把json怎么转换成数组?