मैं cJSON पुस्तकालय, डेव गैंबल, द्वारा लिखित उपयोग करने के लिए निम्नलिखित JSON सारणी में पढ़ने का प्रयास कर रहा हूँ: पढ़ने सेएक JSON सरणी में पढ़ने के लिए cJSON का उपयोग
"items":
[
{
"name": "command",
"index": "X",
"optional": "0"
},
{
"name": "status",
"index": "X",
"optional": "0"
}
]
उसकी documentation, मैं पढ़ने के लिए तरीके व्यक्तिगत वस्तुओं में, लेकिन Arrays के बारे में कुछ नहीं, और मैं यह अनुमान लगाने में सक्षम नहीं था कि दिए गए उदाहरणों से इसे कैसे किया जाए।
यहाँ मैं क्या कोशिश कर रहा हूँ है:
cJSON* request_json = NULL;
cJSON* items = cJSON_CreateArray();
cJSON* name = NULL;
cJSON* index = NULL;
cJSON* optional = NULL;
request_json = cJSON_Parse(request_body);
items = cJSON_GetObjectItem(request_json, "items");
name = cJSON_GetObjectItem(items, "name");
index = cJSON_GetObjectItem(items, "index");
optional = cJSON_GetObjectItem(items, "optional");
मैं जानता हूँ कि यह गलत है, और न सिर्फ इसलिए कि यह काम नहीं कर रहा है, लेकिन मैं समझ नहीं कैसे यह सही बनाने के लिए।
स्पष्ट रूप से मुझे सरणी के प्रत्येक अनुक्रमणिका के लिए सभी प्रविष्टियों में पढ़ने की प्रक्रिया को लूप करने की आवश्यकता होगी। मुझे नहीं पता कि मैं ऐसा कैसे करने जा रहा हूं, क्योंकि मुझे नहीं पता कि मुझे इस कोड में इंडेक्स का उपयोग क्यों करना चाहिए, या यदि यह सही शुरुआत भी है। cJSON_GetArrayItem()
है, लेकिन इसमें केवल एक संख्या (संभवतः एक सूचकांक) होती है और यह कोई संकेत नहीं देता है कि यह कौन सा फ़ील्ड चाहता है।
तो "आइटम" का मूल्य एक सरणी है, यह मेरे लिए तुम वहाँ कहीं में एक सरणी का अनुक्रमण किया जाना चाहिए लगता है। फिर वह आपको "ऑब्जेक्ट" वापस देगा जो आप कुंजी द्वारा खोज सकते हैं। –
(ध्यान दें कि जब आपने JSON उद्धृत किया है तो आपने आसपास के '{}' को गलती से छोड़ा है। '{} 'एक वस्तु" को इंगित करता है, और इसके बिना उपरोक्त पाठ अमान्य JSON है।) –
यह नहीं था कि यह कैसे परिभाषित किया गया था कंपाइलर में, बस इसे उदाहरण के रूप में दिखा रहा है – Nealon