【发布时间】:2026-02-08 08:10:02
【问题描述】:
如何反序列化data 值?
{"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();
}
我无法反序列化Data元素Id等。可以提取元素free、line和count。
我试图创建第二个类来分隔它们,但这也不起作用。
【问题讨论】:
-
为什么不能反序列化?这将非常有趣。如果您能回答这个问题,也许您可以针对您的问题向我们提问?
-
编辑 int Ids 中的错字 ids= Data.get("Id", 0).asInt();
-
那些 int 定义在抱歉类中。
标签: c++ json deserialization jsoncpp