2017-04-26 133 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 
}}";