我试图创建一个字符串字面值来表示一个JSON对象数组,所以我想使用字符串插值功能,如下面的代码所示:如何使用字符串插值和逐字字符串一起创建一个JSON字符串文字
public static void MyMethod(string abc, int pqr)
{
string p = $"[{{\"Key\":\"{abc}\",\"Value\": {pqr} }}]";
}
现在我想使用逐字字符串,以便我不必使用反斜杠来双引号。所以我通过this得知答案,即逐字串和串插可以一起使用。所以我改变我的代码如下:
public static void MyMethod(string abc, int pqr)
{
string p = [email protected]"[{{"Key":"{abc}","Value": {pqr} }}]";
}
但它无法编译。任何人都可以帮助我,如果我的用法中有任何错误,或者而不是可以在这种情况下使用C#字符串逐字符特征来避免双引号?
逐字字符串需要你通过加倍双引号来避免双引号。 '$ @“[{{”“Key”“:”“{abc}”“,”“Value”“:{pqr}}}]”'可以工作,但是这样可读性更高。考虑使用JSON序列化程序来避免字符串湿法工作。 –
@RBT甚至假设你真的不想使用JSON序列化程序我会避免以这种方式构建字符串,格式化字符串很快变得绝对不可读并且容易出错。在这种情况下''String.Format()'会有所帮助,如果你写了更多的函数,那么你将有一个很好的可读代码片段('QuoteJsonString()','ConvertToJsonKeyValuePair()'和一行LINQ来连接它们。 ..) –