我在.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);
}
我得到的结果是:
&#34; [{\&#34;消息\&#34;:\&#34; lala1 \&#34;},{\&#34;消息\&#34;:\&# 34; lala2 \&#34;}]&#34;
我不想在开头和结尾使用双引号(""
)。为什么要添加它们?
答案 0 :(得分:1)
您正在尝试使用JSON序列化JSON。 变化:
var json = new JavaScriptSerializer().Serialize(listOfMessages);
return Json(json);
到:
return Json(listOfMessages);
答案 1 :(得分:0)
JavaScriptSerializer
类的MSDN文档实际上recommends以下内容:
Json.NET应该用于[用于]序列化和反序列化。
JSON.NET库成为在.NET中使用JSON的事实标准,例如,它是与ASP.NET Web API(link)一起使用的默认序列化程序。
以下是如何重新编写代码以使用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);
}
答案 2 :(得分:0)
通过使用并返回一个JObject的List来解决它。