2017-04-26 188 views
2

傢伙,C#字符串插值轉義雙引號和花括號

我建立一個JSON對象從插值字符串,並沒有得到如何逃脫的作品。我必須爲API使用雙引號。

這不進行內插的花括號之間的表達式:

@"{{ 
         ""name"":""{taskName}"", 
         ""products"": [  
            {""product"": ""ndvi_image"", ""actions"": [""mapbox"", ""processed""]}, 
            {""product"": ""true_color"", ""actions"": [""mapbox"", ""processed""]} 
            ], 
         ""recurring"":true, 
         ""query"": { 
             ""date_from"": ""{dateFromString}"", 
             ""date_to"": ""{dateToString}"", 
             ""aoi"": {polygon} 
            }, 
         ""aoi_coverage_percentage"":90 
         }}"; 

此拋出一堆錯誤,顯然,大括號沒有被正確地轉義:

$"{{ 
         ""name"":""{taskName}"", 
         ""products"": [  
            {""product"": ""ndvi_image"", ""actions"": [""mapbox"", ""processed""]}, 
            {""product"": ""true_color"", ""actions"": [""mapbox"", ""processed""]} 
            ], 
         ""recurring"":true, 
         ""query"": { 
             ""date_from"": ""{dateFromString}"", 
             ""date_to"": ""{dateToString}"", 
             ""aoi"": {polygon} 
            }, 
         ""aoi_coverage_percentage"":90 
         }}"; 

我應該如何格式化它以便保留內部雙引號和外括號,同時允許插入單個括號內的值?

回答

5

看來,你已經錯過了逃生爲productsquery物件:

[email protected]"{{ 
    ""name"":""{taskName}"", 
    ""products"": [ 
     {{""product"": ""ndvi_image"", ""actions"": [""mapbox"", ""processed""]}}, 
     {{""product"": ""true_color"", ""actions"": [""mapbox"", ""processed""]}} 
    ], 
    ""recurring"":true, 
    ""query"": {{ 
     ""date_from"": ""{dateFromString}"", 
     ""date_to"": ""{dateToString}"", 
     ""aoi"": {polygon} 
    }}, 
    ""aoi_coverage_percentage"":90 
}}"; 
4

除了@"..."$"..." C#支持[email protected]"..."字符串,這是你在找什麼,當你建立了需要插入多行字符串文字爲:

[email protected]"{{ 
    ""name"":""{taskName}"", 
    ""products"": [  
       {{""product"": ""ndvi_image"", ""actions"": [""mapbox"", ""processed""]}}, 
       {{""product"": ""true_color"", ""actions"": [""mapbox"", ""processed""]}} 
       ], 
    ""recurring"":true, 
    ""query"": {{ 
        ""date_from"": ""{dateFromString}"", 
        ""date_to"": ""{dateToString}"", 
        ""aoi"": {polygon} 
       }}, 
    ""aoi_coverage_percentage"":90 
}}";