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"
// ]
// }