如何将变量用作原始 JSON 字符串中的数据?
How do you use variables as data in a raw JSON string?
我正在使用C++中使用原始JSON字符串的API。例如:
string data = R"JSON({
"key1": "value1",
"key2": "value2"
})JSON";
我想使用变量作为值。例如:
string value1 = "55.2";
string value2 = "3.14";
string data = R"JSON({
"key1": value1, //somehow use the string variables here
"key2": value2
})JSON";
这样的事情可能吗?
您可以使用operator+
连接字符串。
#include <iostream>
#include <string>
int main() {
std::string value = "55.2";
std::string str = R"({"key1":)" + value + "}";
std::cout << str;
}
如果您只需要执行一次,则可以按照其他答案/注释的建议手动连接生成的字符串。
如果你可能需要做更多的事情(例如,为某些网络API构建巨大的JSON请求,或者解析回巨大的响应),请继续阅读:)
我非常不喜欢使用字符串operator+
、字符串流、sprintf
或任何其他字符串操作手动连接 JSON 的想法。
当您仅处理数字并且 JSON 较小时,任何基于字符串串联的解决方案都可能有效,但如果您需要将字符串值连接到 JSON 中,则一旦字符串中有"
或字符,您就会遇到麻烦。您需要进行适当的转义。此外,如果您连接的 JSON 对象变得很大,维护该代码将是一场噩梦。
解决 方案?
如果需要使用 C++,请查找为您执行 JSON 操作的库。有很多。通常最好使用经过测试的第三方代码来很好地解决此特定任务。是的,开始使用外部依赖项可能需要比手动连接字符串更多的时间,但它只会使代码更好。
如果你的任务与调用网络 API 和操作 JSON 密切相关,C++可能不是最好的语言选择,除非有其他注意事项(或者除非它是编程作业:))。现代脚本语言(Python,JavaScript,其他)原生支持JSON和网络调用。
相关文章:
- C++浮点数据类型和字符串数据类型无法子到模板函数中
- C++ - 使用用户输入的字符串数据检查结构字符串数据(无限执行 while 循环)
- 如果我在块中编写字符串文字,是否会从数据部分复制整个字符串数据?
- 无法在 c++ 中将字符串分配给字符串数据类型
- 将特定字符串数据解析为变量
- C++ 将字符串数据包转换为 iphdr语言 - 字符串数据包的格式应该是什么?
- 基于给定字符串数据类型的链表删除节点
- 插入了 C++ 数组字符串数据,但在显示输出时不显示
- 使用来自串行端口的字符串数据来操作振镜扫描仪在更高的速度下会出错
- 将元音与字符串数据类型的字符串分开,并将其存储在新字符串中
- 放置在外部 DLL 中的类中的字符串数据的内存损坏
- 创建字符串数据串起
- 如何在C++中将字符串数据存储在字符串 2D 数组中
- C++程序不返回文件中文本和字符串数据的值
- C++:在字符串数据类型中创建单词"letter after letter"
- 将向量中的字符串数据解析为适当的数据类型 c++
- 如何将提取的字符串数据转换为字符数组
- 字符串数据类型变量初始化
- 如何从本机空间中的宗地中检索字符串数据
- 在C 中使用字符串数据类型的问题