C++:在不使用反斜杠(\)的情况下考虑C++ std :: string中双引号(")的字面含义

cod*_*ver 0 c++ string stdstring visual-c++ c++17

我收到了以字符串格式收到的JSON数据.

std::string jsonStr = GetJsonStringBuffer();
Run Code Online (Sandbox Code Playgroud)

//它可能会像这样存储在jsonStr中:

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

BUT JSON字符串本身有双引号(").所以当GetJsonStringBuffer()返回一个C++ std :: string存储时jsonStr.它不会产生问题,因为带有json数据的双引号(")可能被视为字符串分隔符C++ std :: string.

如何处理这种情况.我是否以编程方式为json字符串中的每个双引号添加"\"(反斜杠),我认为这不是一个很好的解决方案.有没有更好的C++解决方案呢?

Chr*_*phe 7

字符串中有一个字符串没有问题".C++中双引号的唯一问题是它们在编译时出现在源代码的文字中.这就是反斜杠的用途.

  • 哎呀,感谢[原始字符串文字](https://en.cppreference.com/w/cpp/language/string_literal)你甚至不需要反斜杠.对正则表达式,json等有用."R"({"key":"value"})"` (4认同)