6
例如:如何在C++中使用jsoncpp解析器解析嵌套的对象/数组?
Json::Reader reader;
Json::Value val;
ifstream file("JSON/test.json");
bool success = reader.parse(file, val, false);
vector<string> obj = val.getMemberNames();
for (int i = 0; i < val.size(); i++)
{
// switch type of value
switch (val.get(obj.at(i), "default").type())
{
case stringValue:
cout << "I'm string" << endl;
... need to save **membername** and **value**
break;
case intValue:
cout << "I'm int" << endl;
... need to save **membername** and **value**
break;
case nullValue:
cout << "I'm null" << endl;
break;
case arrayValue:
... code to parse an array (with nested sure) ...
... need to save
break;
case objectValue:
... code to parse an object (with nested sure) ...
... need to save
break;
}
}
例JSON文件(JSON/test.json):
{
"layout": "fit",
"xtype": "viewport",
"height": 200,
"style": {
"backgroundColor": "46f0a8"
},
"items":
[
{
"title": "Management Console",
"padding": "10 10 10 10",
"bodyPadding": 10,
"autoScroll": true,
"items2": [1, 2, 3]
}
]
}
在阵列项,我们可以看到另一个阵列(嵌套的)称为items2 。
可能会遇到阵列以下:
array[Jacob, Joseph] or
array[{name: Jacob, name: Joseph}] or
array[{name: Jacob}, {name: Joseph}]
对于对象是相似的。在每个字段中,当然可以是许多嵌套对象/数组。如何将数据保存在C++变量中?
这对我来说还不是很清楚,你真正要求什么。我看到3个问题。如何在'jsoncpp'库中处理'array'数据和'object'数据?我如何适应不同的数据存储惯例?我如何处理一般/嵌套情况? – luk32
目前还不清楚是要解析为预定义的C++类,还是要解析任意的JSON数据。对于后一种情况,将JSON :: Value转换为其他格式确实没有意义。直接使用'JSON :: Value'即可。 –