如何将GeoJson文件中的数据提取到Qt类对象中?
如何将GeoJson文件的所有字符串转换为类对象 GeoJson文件示例:如何将GeoJson文件中的数据提取到Qt类对象中?,json,qt,geojson,Json,Qt,Geojson,如何将GeoJson文件的所有字符串转换为类对象 GeoJson文件示例: {"type":"FeatureCollection","features" :[ {"type":"feature","properties":{"type":"126"},"geometry": {"type":"POINT","coordinates":[197,98]}} {"type":"feature","properties":{"type":"126"},"geometry": {"type":"POI
{"type":"FeatureCollection","features" :[
{"type":"feature","properties":{"type":"126"},"geometry":
{"type":"POINT","coordinates":[197,98]}}
{"type":"feature","properties":{"type":"126"},"geometry":
{"type":"POINT","coordinates":[142,24]}}
{"type":"feature","properties":{"type":"126"},"geometry":
{"type":"POINT","coordinates":[185,53]}}]}
我需要为每个字符串创建一个类对象并填写其字段:
class Json
{
public:
Json();
QString type;
QString propeties_type;
QString geometry_type;
int x_coord,y_coord;
};
我尝试使用QVariant,但我不知道如何提取信息:
QByteArray data = file.readAll();
QJsonDocument jsdoc = QJsonDocument::fromJson(data);
QVariant variant = jsdoc.object()["features"].toVariant();
我会用以下方法来做:
std::vector<Json> result;
QByteArray data = file.readAll();
QJsonDocument jsdoc = QJsonDocument::fromJson(data);
QJsonArray features = jsdoc.object()["features"].toArray();
QJsonArray::const_iterator it = features.constBegin();
while (it != features.constEnd())
{
Json json;
QJsonObject feature = it->toObject();
json.type = "feature";
json.propeties_type = feature["properties"].toObject()["type"].toString();
QJsonObject geometry = feature["geometry"].toObject();
json.geometry_type = geometry["type"].toString();
QJsonArray coordinates = geometry["coordinates"].toArray();
assert(coordinates.size() == 2);
json.x_coord = coordinates.at(0).toInt();
json.x_coord = coordinates.at(1).toInt();
result.push_back(json);
++it;
}
std::向量结果;
QByteArray data=file.readAll();
QJsonDocument jsdoc=QJsonDocument::fromJson(数据);
QJsonArray features=jsdoc.object()[“features”].toArray();
QJsonArray::const_迭代器it=features.constBegin();
while(it!=features.constEnd())
{
Json;
QJsonObject feature=it->toObject();
json.type=“feature”;
json.properties_type=feature[“properties”].toObject()[“type”].toString();
QJsonObject geometry=特征[“几何体”]。toObject();
json.geometry_type=geometry[“type”].toString();
QJsonArray坐标=几何体[“坐标”]。toArray();
断言(坐标.size()=2);
json.x_coord=coordinates.at(0).toInt();
json.x_coord=coordinates.at(1).toInt();
结果。推回(json);
++它;
}
代码生成一个Json
对象向量,每个对象都包含有关“功能”的信息