उदाहरण के लिए:सी ++ में 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}]
वस्तुओं के लिए यह समान है। प्रत्येक क्षेत्र में, निश्चित रूप से कई घोंसला वाली वस्तुओं/सरणी हो सकते हैं। मैं सी ++ चर में डेटा कैसे सहेजूं?
यह मेरे लिए बिल्कुल अस्पष्ट है, आप वास्तव में क्या पूछ रहे हैं। मैं 3 प्रश्न देखता हूं। मैं 'jsoncpp' लाइब्रेरी में' array' डेटा और 'ऑब्जेक्ट' डेटा को कैसे संसाधित करूं? मैं अलग-अलग डेटा संग्रह सम्मेलनों को कैसे अनुकूलित करूं? मैं सामान्य/घोंसले के मामलों को कैसे संभाल सकता हूं? – luk32
यह स्पष्ट नहीं है कि आप एक पूर्वनिर्धारित सी ++ कक्षा में पार्स करना चाहते हैं, या आप मनमानी JSON डेटा को पार्स करना चाहते हैं। बाद के मामले में, 'JSON :: Value' को अन्य प्रारूपों में परिवर्तित करने में वास्तव में कोई बिंदु नहीं है; बस 'JSON :: Value' का उपयोग सीधे करें। –