{
  "Object1": {
    "description": "An object",
    "data": "more data"
  },
  "Object2": {
    "description": "An object",
    "data": "more data"
  }
}

प्रत्येक तत्व को एक-एक करके आसानी से पार्स करने के लिए मैं इस JSON ऑब्जेक्ट में तत्वों पर पुनरावृति करने के लिए GSON का उपयोग कैसे करूं?

-3
Hyrial 18 मई 2018, 08:56

3 जवाब

सबसे बढ़िया उत्तर

मैंने मैन पेज को देखा और पाया कि मैं ऑब्जेक्ट में सदस्यों के सेट पर लूप कर सकता हूं।

JsonObject obj = gson.fromJson(jsonFile, JsonObject.class);
for(Map.Entry<String, JsonElement> element : obj.entrySet()) {
    Object obj = gson.fromJson(element.getValue(), Object.class);
    // do stuff with the object
}
0
Hyrial 24 मई 2018, 10:23

हाँ वहाँ है, लेकिन प्रभाकरपी सही है, JSON में साहचर्य सरणियाँ वस्तुएँ हैं। तो आपके मामले में,

{
  "Object1": {
    "description": "An object",
    "data": "more data"
  }
}

आपके पास एक मेटा-ऑब्जेक्ट होगा जिसमें प्रत्येक सरणी तत्व एक संपत्ति के रूप में होगा, जो वास्तव में समझ में नहीं आता है। आपको इसे अलग तरह से पार्स करना चाहिए।

लेकिन अगर आपको अभी भी जीएसओएन में जरूरत है, तो कोशिश करें,

 JsonArray body = gson.fromJson(yourString, JsonArray.class);
        JSONObject metaObj = new JSONObject();  

        for (JsonElement currEle : paymentsArray) {
            JSONObject currObj = currEle.getAsJsonObject();
            String nameVal = currObj.get("name");
            currObj.remove("name");
            metaObj.addProperty(nameVal, currObj);
        }
0
Antho Christen 18 मई 2018, 09:31

मैं आपको सुझाव दूंगा कि आप सरणी में प्रत्येक वस्तु में एक संपत्ति जोड़ें और उसका उपयोग करें

0
Pranay Kumar 18 मई 2018, 11:39