我的 json 对象转换代码有问题。我正在尝试编写一个接收向量的循环,如果向量有反转,则将其存储在 jSon 对象中。我遇到的唯一真正问题是正确的输出。在期望字符串时尝试将变量用作键值时出现错误。我的主要问题是如何将整数转换为字符串,以便代码接受并正确打印?
for(auto j = 0; j <= myvec.size(); j++){
m = j+1;
if(m > myvec.size()){
break;
}
if(name == metad){
break;
}
if(myvec[m] != 0){
if(myvec[j] > myvec[m]){
jcount = j;
jsonresult.emplace_back(nlohmann::json::object_t::value_type(j,{ myvec[j], myvec[m]}));
count++;
}
主要问题是在 emplace_back 行中,它不允许我使用 j 作为正确的键值,从而导致错误
error: no matching function for call to ‘std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> >::pair(int&, <brace-enclosed initializer list>)’
jsonresult.emplace_back(nlohmann::json::object_t::value_type(j,{myvec[j], myvec[m]}));
所以我想我的问题是如何让它正确存储动态变量,然后我的代码输出这个
1":[811700988,797039],"2":[797039,-1680733532]
代替
[
2,
797039,
-1680733532
]
感谢任何帮助,谢谢!