c++ - JSONCPP 向量 - 分段错误
问题描述
我正在使用 JSONCPP 创建一个解析纬度和经度的 JSON 文档,但它总是给我分段错误。我已经尝试创建一个 C++ 向量,例如 std::vector<std::string>
包含在 JSON 中,但错误仍然存在。
我认为重要的是要说向量构造良好,如果我找出它们,它们会显示应有的值。此外,它们都具有相同的大小。
这是这部分代码:
#include <iostream>
#include <fstream>
#include <map>
#include <vector>
#include <string>
#include "json/json.h"
void create_json(std::vector<std::string> vector_position_latitude,
std::vector<std::string> vector_degrees_latitude,
std::vector<std::string> vector_minutes_latitude,
std::vector<std::string> vector_seconds_latitude,
std::vector<std::string> vector_position_longitude,
std::vector<std::string> vector_degrees_longitude,
std::vector<std::string> vector_minutes_longitude,
std::vector<std::string> vector_seconds_longitude)
{
// JSON STRUCTURE
Json::Value event;
Json::Value vecLatPL(Json::arrayValue);
Json::Value vecLatDL(Json::arrayValue);
Json::Value vecLatML(Json::arrayValue);
Json::Value vecLatSL(Json::arrayValue);
Json::Value vecLngPN(Json::arrayValue);
Json::Value vecLngDN(Json::arrayValue);
Json::Value vecLngMN(Json::arrayValue);
Json::Value vecLngSN(Json::arrayValue);
for (size_t i = 0; i < vector_position_latitude.size(); i++)
{
vecLatPL.append(vector_position_latitude[i]);
vecLatDL.append(vector_degrees_latitude[i]);
vecLatML.append(vector_minutes_latitude[i]);
vecLatSL.append(vector_seconds_latitude[i]);
vecLngPN.append(vector_position_longitude[i]);
vecLngDN.append(vector_degrees_longitude[i]);
vecLngMN.append(vector_minutes_longitude[i]);
vecLngSN.append(vector_seconds_longitude[i]);
//PREVIOUS ATTEMPT
//vecLatPL.append(Json::Value(vector_position_latitude[i]));
//vecLatDL.append(Json::Value(vector_degrees_latitude[i]));
//vecLatML.append(Json::Value(vector_minutes_latitude[i]));
//vecLatSL.append(Json::Value(vector_seconds_latitude[i]));
//vecLngPN.append(Json::Value(vector_position_longitude[i]));
//vecLngDN.append(Json::Value(vector_degrees_longitude[i]));
//vecLngMN.append(Json::Value(vector_minutes_longitude[i]));
//vecLngSN.append(Json::Value(vector_seconds_longitude[i]));
}
event["coords"]["lat"]["PL"].append(vecLatPL);
event["coords"]["lat"]["DL"].append(vecLatDL);
event["coords"]["lat"]["ML"].append(vecLatML);
event["coords"]["lat"]["SL"].append(vecLatSL);
event["coords"]["lng"]["PN"].append(vecLngPN);
event["coords"]["lng"]["DN"].append(vecLngDN);
event["coords"]["lng"]["MN"].append(vecLngMN);
event["coords"]["lng"]["SN"].append(vecLngSN);
// PREVIOUS ATTEMPTS
// 1.
//event["coords"]["lat"]["PL"] = vecLatPL;
//event["coords"]["lat"]["DL"] = vecLatDL;
//event["coords"]["lat"]["ML"] = vecLatML;
//event["coords"]["lat"]["SL"] = vecLatSL;
//event["coords"]["lng"]["PN"] = vecLngPN;
//event["coords"]["lng"]["DN"] = vecLngDN;
//event["coords"]["lng"]["MN"] = vecLngMN;
//event["coords"]["lng"]["SN"] = vecLngSN;
// 2.
//event["coords"]["lat"]["PL"] = vector_position_latitude;
//event["coords"]["lat"]["DL"] = vector_degrees_latitude;
//event["coords"]["lat"]["ML"] = vector_minutes_latitude;
//event["coords"]["lat"]["SL"] = vector_seconds_latitude;
//event["coords"]["lng"]["PN"] = vector_position_longitude;
//event["coords"]["lng"]["DN"] = vector_degrees_longitude;
//event["coords"]["lng"]["MN"] = vector_minutes_longitude;
//event["coords"]["lng"]["SN"] = vector_seconds_longitude;
std::cout << event << std::endl;
};
JSON结构应该是这样的:
coods:{
lat:{
PL:{*values*},
DL:{*values*},
ML:{*values*},
SL:{*values*}
},
lng: {
PN: {*values*},
DN: {*values*},
MN: {*values*},
SN: {*values*}
}
}
任何人都可以帮助我如何将这些向量插入到该结构中的 JSON 文档中吗?
解决方案
推荐阅读
- pyspark - Pyspark数据框中的多重过滤条件不等于条件
- reactjs - 将 UseRef 转换为 React Hooks
- javascript - react-native如何更改从其他页面获取的usestate数据?
- scala - 如何将 Future[Option[A]] 转换为 Future[A]
- dpdk - DEV_TX_OFFLOAD_VXLAN_TNL_TSO 卸载测试 - DPDK
- api - VueJS - 如何在同一组件中的另一个 API 调用中使用一个 API 调用的响应
- java-native-interface - JNI 类和接口命名
- ansible - Ansible with_items 第二个列表作为条件
- c# - OneTimeSetUp:System.ComponentModel.Win32Exception:没有足够的内存资源来处理此命令
- raspberry-pi - 尝试在 Raspberry Pi 集群上设置多语言环境教堂