在C#

时间:2018-03-27 12:32:20

标签: c# .net json javascriptserializer

我正在尝试创建一个包含一个容器和一个数组的JSON字符串。 我可以通过使用stringbuilder来做到这一点,但我试图找到一个更好的方法来获取JSON字符串;我想要:

{ "message":{ "text":"test sms"},"endpoints":["+9101234"]} 

我试过了:

string json = new JavaScriptSerializer().Serialize(new
              {
                  text = "test sms",
                  endpoints = "[dsdsd]"
              });

输出是:

{"text":"test sms","endpoints":"[dsdsd]"}

如何获得所需格式的任何帮助或建议?

1 个答案:

答案 0 :(得分:10)

最简单的方法是使用匿名类型,例如:

string json = new JavaScriptSerializer().Serialize(new
                {
                    message = new { text = "test sms" },
                    endpoints = new [] {"dsdsd", "abc", "123"}
                });

或者,您可以定义一个类来保存这些值,并将此类的对象序列化为json字符串。对于示例,请定义类:

public class SmsDto
{
   public MessageDto message { get; set; }

   public List<string> endpoints { get; set; }
}

public class MessageDto
{
   public string text { get; set; }
}

并使用它:

var sms = new SmsDto()
{
   message = new MessageDto() { text = "test sms" } ,
   endpoints = new List<string>() { "dsdsd", "abc", "123" }
}

string json = new JavaScriptSerializer().Serialize(sms);