string с двойными кавычками в несколько строк?

Visual Studio 2019 Есть данные

{
  "product": "oil",
  "price": 544.13
}

string json = "{\"product\": \"oil\", \n  \"price\": 544.13}";

Как можно для удобства задавать также в несколько строк!?

string json1 = @"{'product': 'oil',  
              'price': 544.13}";

Но только с двойными кавычками? [дублирующего вопроса нет!!! Не нашёл] Когда использую \" для задачи двойных кавычек внутри строки, компилятор не даёт разорвать строку.

Нужно:

string json1 = @"{"product": "oil",  
              "price": 544.13,
              "volume":11 }";
\" - не помогает

Ответы (3 шт):

Автор решения: FreePainter34

Если Вам нужно получить на выходе корректный JSON, а объект заранее известен, попробуйте обойтись без работы со строками:

var obj = new
{
    price = 544.13,
    product = "oil"
};

var json = JsonConvert.SerializeObject(obj);

При работе с анонимным типом будет удобно задавать значения полей, не используя кавычек. А далее, полученный объект конвертировать в JSON удобным способом, в данном случае через Newtonsoft

→ Ссылка
Автор решения: Andrei Khotko

Предложу необычное, немного извращенное решение. Вместо экранирования кавычек будем использовать интерполяцию $ и "буквальный идентификатор @" одновременно. Доступно начиная с c# 6.0+ :

    const char q = '\u0022';
    var json1 = $@"
       {{
          {q}product{q}: {q}oil{q},  
          {q}price{q}: 544.13,
          {q}volume{q}:11 
       }}";

P.S. Не проверял работу на .net framework, только на .net core.

→ Ссылка
Автор решения: sombik

Вот так. Переносы работают.

string json1 = @"{""product"": ""oil"",  
              ""price"": ""544.13"",
              ""volume"":11 }";
→ Ссылка