2017-04-26 5 views
2

Jungs,C# String-Interpolation-escaping doppelte Anführungszeichen und geschweiften Klammern

Ich baue ein JSON-Objekt aus einem interpolierten String, und nicht immer wie Werke zu entkommen. Ich muss doppelte Anführungszeichen für die API verwenden. Diese Interpolation nicht die Ausdrücke zwischen den geschweiften Klammern

:

@"{{ 
         ""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 
         }}"; 

Das eine Reihe von Würfen Fehler-anscheinend sind die geschweiften Klammern nicht richtig übersetzt werden:

$"{{ 
         ""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 
         }}"; 

Wie soll ich formatieren Sie es, um die internen doppelten Anführungszeichen und äußeren Klammern zu behalten, während Sie zulassen, dass die Werte innerhalb der einzelnen Klammern interpoliert werden?

Antwort

5

Es scheint, dass Sie Flucht verpasst haben für die products und query Objekte:

[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

Neben @"..." und $"..." C# unterstützt [email protected]"..." Strings, das ist, was Sie suchen, wenn Sie mehrzeilige Stringliterale bauen, die interpoliert werden müssen:

[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 
}}"; 
Verwandte Themen