C++ JSONcpp-尝试反序列化为变量
如何反序列化C++ JSONcpp-尝试反序列化为变量,c++,json,deserialization,jsoncpp,C++,Json,Deserialization,Jsoncpp,如何反序列化数据值 {"data": [{ "Id": 3, "Name" : "Wind", "Type" : 2, "Order" : 1, "user" : "Mike" }], "free" : 0, "line" : 10, "count" : 1 } 以下是我迄今为止所尝试的: class Class { public: virtual
数据
值
{"data":
[{
"Id": 3,
"Name" : "Wind",
"Type" : 2,
"Order" : 1,
"user" : "Mike"
}],
"free" : 0,
"line" : 10,
"count" : 1
}
以下是我迄今为止所尝试的:
class Class {
public:
virtual ~Class(void);
virtual void Serialize(Json::Value& root);
virtual void Deserialize(Json::Value& root);
int Id;
std::string free;
std::string line;
std::string count;
std::vector<std::string> ID;
};
void Class::Serialize(Json::Value& root) {
// ...
}
void Class::Deserialize(Json::Value& root) {
free = root.get("top", 0).asInt();
line = root.get("skip", 0).asInt();
count = root.get("count", 0).asInt();
Json::Value Data= root["data"];
Id = Data.get("Id", 0).asInt();
}
类{
公众:
虚拟类(void);
虚拟空序列化(Json::Value和root);
虚拟void反序列化(Json::Value&root);
int-Id;
std::无字符串;
std::字符串行;
std::字符串计数;
std::向量ID;
};
void类::序列化(Json::值和根){
// ...
}
void类::反序列化(Json::值和根){
free=root.get(“top”,0).asInt();
line=root.get(“跳过”,0).asInt();
count=root.get(“count”,0).asInt();
Json::Value Data=root[“Data”];
Id=Data.get(“Id”,0).asInt();
}
我无法反序列化数据元素Id
等。可以提取元素自由
、行
和计数
我试图创建第二个类来分隔它们,但这也不起作用。JSON元素
data
是一个数组。您缺少要访问的元素的索引
目前,它只有一个元素,因此索引为0,即数据[0]
例如:
Id = Data[0].get("Id", 0).asInt();
^^^
为什么不能反序列化它?这将非常有趣。如果你能回答这个问题,你可以为你的问题问我们一个问题?编辑int-Ids=Data.get(“Id”,0).asInt()中的打字错误;那些int定义在类中。很抱歉。谢谢您的帮助,以前在某些方面尝试过数组索引,但它不起作用。@sam:不客气!如果这个答案解决了你的问题,请接受。谢谢