2017-01-15 6 views
0

я получаю исключение при попытке System.Format это:Использование сбежавшего строки с результатами string.Format в формате Exception

var jsonString = String.Format(@"{ 
    ""searchOptions"": { 
     ""departurePosition"": { ""id"": {0} }, 
     ""arrivalPosition"": { ""id"": 376422 }, 
     ""travelModes"": [ ""Flight"", ""Train"", ""Bus"" ], 
     ""departureDate"": ""2017-01-15"", 
     ""passengers"": [ 
      { 
      ""age"": 12, 
      ""discountCards"": [ ] 
      } 
     ], 
     ""userInfo"": { 
      ""identifier"": ""0.jhvlf8amtgk"", 
      ""domain"": "".com"", 
      ""locale"": ""en"", 
      ""currency"": ""EUR"" 
     }, 
     ""abTestParameters"": [ ] 
    } 
}", departurePosition); 

мне это нужно при отправке запроса на запись к серверу.

Как я могу решить эту проблему?

+2

Создать класс, который будет представлять данные и использовать 'вар = Newtonsoft.Json.JsonConvert.SerializeObject JSON (yourDataInstance)', чтобы создать строку JSON. – Fabio

+0

Как предположил @Fabio, лучшим вариантом для создания поддерживаемого решения для вашего вывода Json будет создание классов с использованием библиотеки, такой как Newtonsoft, для создания допустимого вывода. В качестве примера я создал небольшую демонстрацию [здесь] (https://dotnetfiddle.net/LlJ4LD) – Icepickle

ответ

2

Это, вероятно, потому, что использование { и } Чтобы избежать { и } использование {{ и }}

0

OfirW уже поделился этим, string.Format() giving “Input string is not in correct format”

Если это только одна переменная, регулярная конкатенация будет работа хорошо.

var jsonString = 
@"{ ""searchOptions"": { 
     ""departurePosition"": { ""id"": " + departurePosition + @"}, 
     ""arrivalPosition"": { ""id"": 376422 }, 
     ""travelModes"": [ ""Flight"", ""Train"", ""Bus"" ], 
     ""departureDate"": ""2017-01-15"", 
     ""passengers"": [ 
      { 
      ""age"": 12, 
      ""discountCards"": [ ] 
      } 
     ], 
     ""userInfo"": { 
      ""identifier"": ""0.jhvlf8amtgk"", 
      ""domain"": "".com"", 
      ""locale"": ""en"", 
      ""currency"": ""EUR"" 
     }, 
     ""abTestParameters"": [ ] 
    } 
}"; 

 Смежные вопросы

  • Нет связанных вопросов^_^