json中不需要的双引号

时间:2016-09-28 14:12:58

标签: .net json

我在.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;

我不想在开头和结尾使用双引号("")。为什么要添加它们?

3 个答案:

答案 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来解决它。