我正在尝试创建一个表示JSON对象数组的字符串字面量,因此我考虑使用下面代码中展示的字符串插值特性:
public static void MyMethod(string abc, int pqr)
{
string p = $"[{{\"Key\":\"{abc}\",\"Value\": {pqr} }}]";
}
现在我考虑使用verbatim字符串,这样我就不必使用反斜线来转义双引号。 于是我通过这个答案得知,可以同时使用verbatim字符串和字符串插值。所以我将我的代码更改为以下内容:
public static void MyMethod(string abc, int pqr)
{
string p = $@"[{{"Key":"{abc}","Value": {pqr} }}]";
}
但是它无法编译。如果在我的用法中有任何错误,或者使用C#字符串字面特性在这种情况下无法转义双引号,是否可以帮助我?
但它未能编译。如果我的用法存在问题,或者使用C#的字符串逐字功能在这种情况下无法转义双引号,是否有人可以帮助我?
$@"[{{""Key"":""{abc}"",""Value"": {pqr} }}]"
可以工作,但这几乎不可读。考虑使用JSON序列化程序以避免字符串操作。 - Jeroen MostertString.Format()
可以帮助您,如果您编写更多的函数,那么您将拥有一个漂亮的短小可读的代码片段(QuoteJsonString()
,ConvertToJsonKeyValuePair()
和一行LINQ来连接它们...) - Adriano Repetti