我在.NET中有以下代码
public JsonResult<string> Get()
{
Message message1 = new Message("lala1");
Message message2 = new Message("lala2");
List<Message> listOfMessages = new List<Message>();
listOfMessages.Add(message1);
listOfMessages.Add(message2);
var json = new JavaScriptSerializer().Serialize(listOfMessages);
return Json(json);
}我得到的结果是:
“{\”message\“:\”lala2 1“},{\”message\“:\”lala2 2“}”
我不希望双引号("")在开头和结尾。它为什么要加它们?
发布于 2016-09-28 14:51:30
JavaScriptSerializer类的MSDN文档实际上是建议,如下所示:
应该使用Json.NET进行序列化和反序列化。
JSON.NET库成为在.NET中使用JSON的事实上的标准,例如,它是与ASP.NET Web (链接)一起使用的默认序列化程序。
下面是如何重写代码以使用JSON.NET (一定要将Newtonsoft.Json nuget包添加到解决方案中):
public static void Main()
{
var result = SerializeMessages();
Console.WriteLine(result);
}
public static string SerializeMessages()
{
var listOfMessages = new List<Message>
{
new Message("lala1"),
new Message("lala2")
};
return JsonConvert.SerializeObject(listOfMessages);
}发布于 2016-09-28 14:37:42
您正在尝试在JSON中序列化JSON。改变:
var json = new JavaScriptSerializer().Serialize(listOfMessages);
return Json(json);致:
return Json(listOfMessages);发布于 2016-09-28 14:56:46
通过使用并返回一个JObjects列表来解决这个问题。
https://stackoverflow.com/questions/39750052
复制相似问题