C ++: учитывайте буквальное значение двойных кавычек (") в std :: string C ++ без использования обратной косой черты (\) - PullRequest
0 голосов
/ 12 октября 2018

У меня есть данные JSON, полученные в строковом формате.

std::string jsonStr = GetJsonStringBuffer();

// Может храниться в jsonStr следующим образом:

jsonStr = " {"Key1": "val1", "key2": "val2", "key3": "val3"} ";

BUT Сама строка JSON имеет двойнуюв кавычках ("). Поэтому, когда GetJsonStringBuffer() возвращает C ++, std :: string хранится в jsonStr. Это не создаст проблему, поскольку двойные кавычки (") с данными json могут рассматриваться как разделитель строкC ++ std :: string.

Как справиться с этой ситуацией.Должен ли я программно добавлять "\" (обратную косую черту) для каждой двойной кавычки в строке json, что я не считаю отличным решением.Есть ли лучшее решение C ++ для этого?

1 Ответ

0 голосов
/ 12 октября 2018

Нет проблем со строкой, содержащей ".Единственная проблема с двойными кавычками в C ++ - это когда они появляются в литерале в исходном коде во время компиляции.И вот для чего нужен обратный слеш.

...