C# 正在形成Json格式字符串

C# 正在形成Json格式字符串,c#,string.format,C#,String.format,我正在使用这个方法来形成json字符串,这很好。但是如果它包含更多属性,我就无法处理它。还有比这更好的方法吗 string.Format("{0}{1}longUrl{1}:{1}{2}{1}{3}", "{", "\"", longUrl,"}"); 输出是 {"longUrl":"http://api.themoviedb.org/3/person/12835?api_key=2c50a994de5291887a4e062edd229a72"} 这样做的“更好”方法是使用Json库。如果

我正在使用这个方法来形成
json
字符串,这很好。但是如果它包含更多属性,我就无法处理它。还有比这更好的方法吗

string.Format("{0}{1}longUrl{1}:{1}{2}{1}{3}", "{", "\"", longUrl,"}");
输出是

{"longUrl":"http://api.themoviedb.org/3/person/12835?api_key=2c50a994de5291887a4e062edd229a72"}
这样做的“更好”方法是使用Json库。如果这是在Asp.Net网站的上下文中(在后面的版本中),则会自动引用该库。如果没有,您可以使用Nuget添加对项目的引用或手动添加它,以您喜欢的为准。然后你可以做:

JsonConvert.SerializeObject(new { longUrl = longUrl });

请注意,您也可以只使用
new{longUrl}
,属性名将与变量名相同。

您可以只使用JSON序列化程序,例如。否则,您可以稍微简化:

string.Format(@"{{""longUrl"":""{0}""}}", longUrl);
您可以使用:


您可以
使用System.Web.Script.Serialization
那就做吧

var dict=新字典
{
{“longUrl”http://api.themoviedb.org/3/person/12835?api_key=2c50a994de5291887a4e062edd229a72"},
{“另一个Url”,“另一个Url”}
};
var serializer=新的JavaScriptSerializer();
serializer.Serialize(dict);
您可以使用库。您可以创建一个要转换为JSON的实体类,而不是使用字符串格式化程序

例如

    public class Account
    {
      public string Email { get; set; }
      public bool Active { get; set; }
      public DateTime CreatedDate { get; set; }
      public IList<string> Roles { get; set; } 
    }

Account account = new Account
  {
    Email = "james@example.com",
    Active = true,
    CreatedDate = new DateTime(2013, 1, 20, 0, 0, 0, DateTimeKind.Utc),
    Roles = new List<string>
      {
        "User",
        "Admin"
      }
  };

string json = JsonConvert.SerializeObject(account, Formatting.Indented);

Console.WriteLine(json);

它应该是
JsonConvert.SerializeObject(新的{longUrl=longUrl})虽然:)我相信它不会起作用。除了{0}之外还有多个{和},这对于string.Format()来说是有问题的。
 var dict = new Dictionary<string, string>
            {
                {"longUrl","http://api.themoviedb.org/3/person/12835?api_key=2c50a994de5291887a4e062edd229a72"},
                {"anotherUrl", "another Url"}
            };

var serializer = new JavaScriptSerializer();
serializer.Serialize(dict);
    public class Account
    {
      public string Email { get; set; }
      public bool Active { get; set; }
      public DateTime CreatedDate { get; set; }
      public IList<string> Roles { get; set; } 
    }

Account account = new Account
  {
    Email = "james@example.com",
    Active = true,
    CreatedDate = new DateTime(2013, 1, 20, 0, 0, 0, DateTimeKind.Utc),
    Roles = new List<string>
      {
        "User",
        "Admin"
      }
  };

string json = JsonConvert.SerializeObject(account, Formatting.Indented);

Console.WriteLine(json);
// {
//   "Email": "james@example.com",
//   "Active": true,
//   "CreatedDate": "2013-01-20T00:00:00Z",
//   "Roles": [
//     "User",
//     "Admin"
//   ]
// }