我有一个很长的 JSON 字符串,它自然包含很多大括号。我使用两个左括号和右括号对每个大括号进行了转义(正如之前关于 stackoverflow 的一些帖子中的建议)。我仍然收到错误:
System.FormatException : Input string was not in a correct format.
这是一个简短的例子:
var json = string.Format($@"{{""{data.GraphId}""}}");
格式的工作方式有什么变化吗? 现在转义大括号的正确方法是什么?
最佳答案
字符串插值只是变成了对string.Format
的调用。因此,您传递给 string.Format
的字符串将从
$@"{{""{data.GraphId}""}}"
类似于下面的内容
string.Format(@"{{""{0}""}}", data.GraphId)
所以你的代码等同于
string.Format(string.Format(@"{{""{0}""}}", data.GrpahId));
一旦内部 string.Format
完成,它看起来像下面假设 data.GrpahId
是 5
string.Format(@"{""5""}");
现在您看到以前分隔的大括号不再分隔。解决方案是不要在 string.Format
中使用内插字符串,或者如果您出于某种原因使用了内插字符串,则必须加倍大括号。
另一方面,如果您正在处理 Json,您应该只使用一个库而不是尝试自己格式化它。
关于c# - VS2015 C# string.Format 在使用转义大括号时抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41829524/