शुरू करने के लिए, यहां वह आइटम है जिसे मैं पार्स करने का प्रयास कर रहा हूं। अभी, मैं इस JSON से "नाम" कुंजी का मान प्राप्त करने का प्रयास कर रहा हूं। मुझे अन्य आवश्यक चर प्राप्त करने के लिए GSON का उपयोग करने में कोई परेशानी नहीं हुई है, लेकिन यह उनसे कहीं अधिक कठिन है।

 "types": [
        {
            "slot": 2,
            "type": {
                "url": "https://www.pokeapi.co/api/v2/type/4/",
                "name": "poison"
            }
        },
        {
            "slot": 1,
            "type": {
                "url": "https://www.pokeapi.co/api/v2/type/12/",
                "name": "grass"
            }
        }
    ]

यहां मेरा कोड है जिसने मुझे प्रकार की सरणी के अलावा सभी वांछित चरों से सफलतापूर्वक ट्रीको ऑब्जेक्ट बनाने की अनुमति दी है।

            Gson gson = new Gson();
            PokedexMemberJava treecko = gson.fromJson(jsonPokemon, PokedexMemberJava.class);

जिन कक्षाओं में मैं JSON से ऑब्जेक्ट बनाने का प्रयास करता था। जब मैंने JSON से ऑब्जेक्ट बनाने का प्रयास किया, तो सभी चर सफलतापूर्वक प्रकार की सरणी के अलावा लोड किए गए थे, जिसे शून्य के रूप में बनाया गया था। ये अन्य चर JSON के एक अलग खंड से लोड किए गए थे, लेकिन यदि आवश्यक हो तो मैंने इस पोस्ट के नीचे एक लिंक शामिल किया है।

public class PokedexMemberJava {
    int id;
    String name;
    int height;
    int weight;
    Types[] type;

public PokedexMemberJava(int id, String name, int height, int weight){
    this.id = id;
    this.name = name;
    this.height = height;
    this.weight = weight;
}


}

public class Types {
    public Type typeObject;
    public int slot;

public Types (Type typeObject, int slot){
    this.typeObject = typeObject;
    this.slot = slot;  
}

}

public class Type {
    public String url;
    public String name;

public Type (String url, String name){
    this.url = url;
    this.name = name;
}

}

मैंने इसे समझने की कोशिश में कुछ घंटे बिताए हैं और org.json जैसे अन्य पुस्तकालयों के साथ नाम चर प्राप्त करने का प्रयास नहीं किया है। मैंने केवल उस भाग का JSON शामिल किया जिसे मैं ऊपर प्राप्त करने का प्रयास कर रहा था। यदि किसी कारण से आप देखना चाहते हैं कि संपूर्ण JSON ऑब्जेक्ट कैसा दिखेगा, जिसे मैं पार्स करने का प्रयास कर रहा हूं, तो आप इसे यहां पा सकते हैं: https://pokeapi.co/api/v2/pokemon/252/ । साथ ही, इस पोस्ट की किसी भी गलती या खराब स्वरूपण के लिए मैं क्षमा चाहता हूं। मैं पहली बार StackOverflow पर एक प्रश्न पोस्ट कर रहा हूँ।

0
Austin Patton 17 जून 2018, 05:13

1 उत्तर

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

आपके पास जेसन फ़ील्ड नाम मेल नहीं खाता है:

  1. Types[] types; के बजाय, आपके पास Types[] type; है जो मेल नहीं खाता types json में संपत्ति
  2. Type type; के बजाय, आपके पास Type typeObject; है जो कि json में type प्रॉपर्टी से मेल नहीं खाता

तो आपके पास 2 विकल्प हैं:

  1. जेसन संपत्ति से मेल खाने के लिए जावा फ़ील्ड का नाम बदलें या
  2. प्रॉपर्टी के नाम को ओवरराइड करने के लिए @SerializedName का इस्तेमाल करें:

    public class PokedexMemberJava {
        @SerializedName("types")
        Types[] type;
        ...
    
    public class Types {
        @SerializedName("type")
        public Type typeObject;
    
0
Mạnh Quyết Nguyễn 17 जून 2018, 05:35