0

我在带有转义花括号的逐字字符串上遇到 String.Format 问题。

它正在提高一个FormatError() Exception:Message: System.FormatException : Input string was not in a correct format.

    String s = $@"{{ ""ver"": ""1.0"",""userId"": ""{0}""}}";
    String.Format(s, "1234")
4

1 回答 1

3

您正在使用 C# 字符串插值特殊字符“$”,但是,您正在模板中使用位置参数。

它应该是:-

String s = @"{{ ""ver"": ""1.0"",""userId"": ""{0}""}}";

String.Format(s, "1234").Dump();

要不就:-

var userId = 1234;

String s = $@"{{ ""ver"": ""1.0"",""userId"": ""{userId}""}}";

如果您的意图是生成 JSON 输出,更合适的方法是创建您的对象并使用Newtonsoft.Json包将其序列化:-

var x = new
{
    ver = "1.0",
    userId = "1234"
};

var s = JsonConvert.SerializeObject(x);
于 2019-07-31T06:49:09.307 回答