如果您打算将一个嵌套在另一个内部,例如:
{
"id" : "1234567890",
"seatbid" : {
"bid" : {
"crid" : "creative112",
"id" : "1"
},
"seat" : "512"
}
}
以下代码可能是您正在寻找的:
#include <iostream>
#include "JsonCpp/jsoncpp.h"
using namespace std;
class IdCrid : public IJsonSerializable {
public:
IdCrid() :id(""), crid("") {}
virtual void Serialize(Json::Value& root) {
root["id"] = id;
root["crid"] = crid;
}
virtual void Deserialize(Json::Value& root) {
}
string id;
string crid;
};
class SeatBid : public IJsonSerializable {
public:
SeatBid() :seat("") {}
virtual void Serialize(Json::Value& root) {
bid.Serialize(root["bid"]);
root["seat"] = seat;
}
virtual void Deserialize(Json::Value& root) {
}
string seat;
IdCrid bid;
};
class IdSeatbid : public IJsonSerializable {
public:
IdSeatbid() :id(""){}
virtual void Serialize(Json::Value& root) {
root["id"] = id;
seatbid.Serialize(root["seatbid"]);
}
virtual void Deserialize(Json::Value& root) {
}
string id;
SeatBid seatbid;
};
void printJSON() {
IdCrid ic;
ic.id = "1";
ic.crid = "creative112";
SeatBid sb;
sb.bid = ic;
sb.seat = "512";
IdSeatbid jp;
jp.id = "1234567890";
jp.seatbid = sb;
string outString = "";
CJsonSerializer::Serialize(&jp, outString);
fprintf(stdout, "%s", outString.c_str());
}
int main()
{
printJSON();
return 0;
}