我試圖創建一個字符串字面值來表示一個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來連接它們。 ..) –