C# String.Format 输入字符串的格式不正确
C# String.Format Input string not in a correct Format
我遇到异常 "Input string was not in a correct format"。我不明白为什么。
我查看了 documentation,但没有给我任何想法。
string body = string.Format(@"{
""credentials"": {
""name"": ""{0}"",
""password"": ""{1}"",
""site"": {
""contentUrl"": ""{2}""
}
}
}",Username, Password, siteName);
没有足够的睡眠和旧代码...我正在反序列化响应但没有序列化请求♂️
{
和 }
在格式字符串中有特殊含义。如果您希望字符串按字面意思包含它们,则必须通过将它们加倍来转义它们:
string body = string.Format(@"{{
""credentials"": {{
""name"": ""{0}"",
""password"": ""{1}"",
""site"": {{
""contentUrl"": ""{2}""
}}
}}
}}", Username, Password, siteName);
或者,正如@mjwills 所建议的,您可以创建一个匿名对象并将其序列化为 JSON:
var obj = new { name = Username, password = Password, site = new { contentUrl = siteName }};
string body = new JavaScriptSerializer().Serialize(obj);
我遇到异常 "Input string was not in a correct format"。我不明白为什么。 我查看了 documentation,但没有给我任何想法。
string body = string.Format(@"{
""credentials"": {
""name"": ""{0}"",
""password"": ""{1}"",
""site"": {
""contentUrl"": ""{2}""
}
}
}",Username, Password, siteName);
没有足够的睡眠和旧代码...我正在反序列化响应但没有序列化请求♂️
{
和 }
在格式字符串中有特殊含义。如果您希望字符串按字面意思包含它们,则必须通过将它们加倍来转义它们:
string body = string.Format(@"{{
""credentials"": {{
""name"": ""{0}"",
""password"": ""{1}"",
""site"": {{
""contentUrl"": ""{2}""
}}
}}
}}", Username, Password, siteName);
或者,正如@mjwills 所建议的,您可以创建一个匿名对象并将其序列化为 JSON:
var obj = new { name = Username, password = Password, site = new { contentUrl = siteName }};
string body = new JavaScriptSerializer().Serialize(obj);