准备C++;Json请求 我试图用C++编写JSON请求。像这样: string key = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; std::string data = "{\n" " \"foo\": key\n" "}";
当我打印时,它显示如下:准备C++;Json请求 我试图用C++编写JSON请求。像这样: string key = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; std::string data = "{\n" " \"foo\": key\n" "}";,c++,json,string,c++14,C++,Json,String,C++14,当我打印时,它显示如下: "foo": key 但我需要这样: "foo": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" 所以,请有人帮帮我。如何做到这一点?提前感谢。C++不会在字符串常量中展开变量,因此如果在这样的字符串中有“key”,它将被解释为字符串“key”,而不是展开为变量 std::string key = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; std::string data = "{\n"
"foo": key
但我需要这样:
"foo": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
所以,请有人帮帮我。如何做到这一点?提前感谢。C++不会在字符串常量中展开变量,因此如果在这样的字符串中有“key”,它将被解释为字符串“key”,而不是展开为变量
std::string key = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
std::string data = "{\n"
" \"foo\": ";
data += key;
data += "\n"
"}";
您要做的是将变量“key”的内容与字符串的其余部分连接起来。在C++中,您可以用级联操作符“+”来完成这一点。
因此,您将需要以下内容:
std::string data = "{\n"
" \"foo\": " + key + "\n"
"}"
不能期望字符串
key
替换为变量key
的值。虽然有些语言支持字符串插值,但据我所知,c++
不支持。您可以通过连接键
之前的字符串、键
和键
之后的字符串来创建json字符串
std::string data=“{\n\“foo\”:“+key+”\n}”;
你肯定可以按照别人的建议去做:
std::string data = "{\n\"foo\":" + key + "\n}";
但是您可以使用(我建议您)一个名为nlohmann::json的漂亮库
并且做:
nlohmann::json j;
std::string k{"123-ABC"};
j["foo"] = k;
std::cout << j.dump();
//prints {"foo":"123-ABC"}
std::cout << j.dump(2);
//prints:
// {
// "foo": "123-ABC"
// }
nlohmann::json j;
std::字符串k{“123-ABC”};
j[“foo”]=k;
STD::首先,为了帮助您解决问题,C++编译器将不解析字符串文字的内容,寻找变量或其他表达式。幸运的是,您可以使用普通的+
操作符将其附加到std::string
对象。例如std::string a=“a”,b=“b”,ab=a+b要继续,您真的不应该尝试自己创建或解析JSON,这非常复杂。找到一个库来帮助它,有很多C++和C库可以使用。