如何格式化 json 数组
how to format json Array
如何将二维数组转换为 json 数组并使用 ajax 发送到视图。
我用了return Json(JsonConvert.SerializeObject(symboltable2), JsonRequestBehavior.AllowGet);
将其转换为 json 和 return。问题是 json 字符串的开头和结尾包含双引号 "[["A","B"],["C","D"]]"
。为了反序列化,我需要去掉双引号,在结尾和开头添加大括号。
但我需要将其转换为 json 数组,如 [["A","B"],["C","D"]]
任何想法如何做到这一点?
您可以使用 String.Trim
删除引号。
char[] charsToTrim = { '"' };
string json = Json(JsonConvert.SerializeObject(symboltable2), JsonRequestBehavior.AllowGet);
string result = json.Trim(charsToTrim);
你是说你想去掉引号和大括号(花括号)。使用 .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;
在我看来,您正在对数组进行双重序列化,这可以解释额外的引号。 Json.Net JsonConvert.SerializeObject()
方法和Json()
MVC 方法都执行序列化。您应该只使用其中之一。
所以,要么删除对 JsonConvert.SerializeObject()
的调用,让 Json()
处理序列化...
return Json(symboltable2, JsonRequestBehavior.AllowGet);
或者,如果您更喜欢使用 Json.Net,则使用 Content()
方法而不是 Json()
方法来 return 结果:
return Content(JsonConvert.SerializeObject(symboltable2), "application/json");
如果您使用第二种方法,您还需要确保控制器方法的 return 类型是 ContentResult
或 ActionResult
(相对于 JsonResult
).
如何将二维数组转换为 json 数组并使用 ajax 发送到视图。
我用了return Json(JsonConvert.SerializeObject(symboltable2), JsonRequestBehavior.AllowGet);
将其转换为 json 和 return。问题是 json 字符串的开头和结尾包含双引号 "[["A","B"],["C","D"]]"
。为了反序列化,我需要去掉双引号,在结尾和开头添加大括号。
但我需要将其转换为 json 数组,如 [["A","B"],["C","D"]]
任何想法如何做到这一点?
您可以使用 String.Trim
删除引号。
char[] charsToTrim = { '"' };
string json = Json(JsonConvert.SerializeObject(symboltable2), JsonRequestBehavior.AllowGet);
string result = json.Trim(charsToTrim);
你是说你想去掉引号和大括号(花括号)。使用 .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;
在我看来,您正在对数组进行双重序列化,这可以解释额外的引号。 Json.Net JsonConvert.SerializeObject()
方法和Json()
MVC 方法都执行序列化。您应该只使用其中之一。
所以,要么删除对 JsonConvert.SerializeObject()
的调用,让 Json()
处理序列化...
return Json(symboltable2, JsonRequestBehavior.AllowGet);
或者,如果您更喜欢使用 Json.Net,则使用 Content()
方法而不是 Json()
方法来 return 结果:
return Content(JsonConvert.SerializeObject(symboltable2), "application/json");
如果您使用第二种方法,您还需要确保控制器方法的 return 类型是 ContentResult
或 ActionResult
(相对于 JsonResult
).