Я искал способ заменить символы в ostringstream
после того, как заполнил его строковым содержимым, но есть только некоторые очень неэффективные решения, которые извлекают string
, модифицируют его и помещают обратно в ostringstream
.автоматически заменяет символы в строковом потоке
Теперь я задаюсь вопросом, есть ли способ автоматически заменить эти символы в момент добавления строки. Например.
ostringstream my_json;
my_json << replace_singlequotes; # modify the stringsteam once
my_json << "{'this':";
my_json << " 'is valid JSON'}";
std::cout << my_json.str();
output:
{"this": "is valid JSON"}
Вы можете написать собственный фильтр для ostringstream
аналогичных модификаторов формата, как std::hex
и т.д., который модифицирует данную строку перед тем обжигающе его в поток?
Или есть ли другой способ заменить символы в ostringstream
, за исключением работы std::replace()
на my_json.str()
, как это предлагается в других вопросах и в хаотах?
Я думаю, что второй фрагмент кода будет более полезен для вас, чем первый. –
Примечание. Если вы хотите просто написать json, чтобы избежать цитаты, вы можете использовать необработанную строку: «R» ({«this»: «is valid JSON»}). – Jarod42