如何格式化json数组

时间:2018-07-20 10:56:30

标签: c# arrays json json.net asp.net-ajax

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

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

将其转换为json并返回。问题是json字符串包含双引号,并以"[["A","B"],["C","D"]]"开头和结尾。为了对此进行反序列化,我需要消除双引号,并在末尾添加大括号。

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

3 个答案:

答案 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");

如果使用第二种方法,则还需要确保控制器方法的返回类型为ContentResultActionResult(与JsonResult相对)。 / p>