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

C++: Consider the literal meaning of double quotes(") in a C++ std::string without using backslash ()

本文关键字:C++ string std 考虑      更新时间:2023-10-16

我有一个字符串格式的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++解决方案吗?

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