#include <json/json.h>
#include <iostream>
void Test(){
Json::Value root;
root.append("tom");
root.append("jerry");
root.append(true);
root.append(20);
Json::Value subArray;
subArray.append("1");
subArray.append("2");
subArray.append("3");
root.append(subArray);
Json::Value subObject;
subObject["name"] = "C++";
subObject["lib"] = "Jsoncpp";
root.append(subObject);
std::string serialStr = root.toStyledString();
std::cout<<serialStr<<std::endl;
Json::FastWriter wt;
std::string noEnterSerailStr = wt.write(root);
std::cout<<noEnterSerailStr<<std::endl;
}
void ParseJsonValue(Json::Value value) {
if (value.isNumeric()){
std::cout<<value<<std::endl;
}
else if (value.isBool()) {
std::cout<<value<<std::endl;
}
else if (value.isString()) {
std::cout<<value.asString()<<std::endl;
}
else if (value.isArray()) {
for (unsigned i = 0; i<value.size(); ++i) {
ParseJsonValue(value[i]);
}
}
else if (value.isObject()) {
auto members = value.getMemberNames();
for (auto it: members) {
std::cout<<it<<":";
ParseJsonValue(value[it]);
}
}else {
}
}
void Test1()
{
Json::Value obj;
Json::Reader read;
read.parse("[\"tom\",\"jerry\",true,20,[\"1\",\"2\",\"3\"],{\"lib\":\"Jsoncpp\",\"name\":\"C++\"}]",obj);
ParseJsonValue(obj);
}
int main() {
Test1();
}