[英]How do you use variables as data in a raw JSON string?
我正在使用使用原始JSON字符串的C ++ 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和网络调用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.