2016-11-29 1 views
0

Comment faire pour convertir le type suivant tableau Json dans "tags_name": ["Activity Based"] dans android et stocker des données en utilisant getter setter méthodes.Comment créer classe POJO, et comment gérer quand tableau est vide.Je suis frappé avec cette concept.J'ai essayé de la manière suivante. Merci de me guider pour résoudre ce problème.Comment obtenir les valeurs de tableau JSON sans avoir des valeurs d'objet JSON dans android? C'est possible?

API

"postlist": [ 
       { 
       "posts": { 
        "pm_post_id": "4647", 
       }, 
       "tags_name": [ 
        "Activity Based" 
       ], 
       "images_count": 0, 
       "images": [], 
       "post_user": [ 
        { 
        "first_name": "Michelle", 
        "last_name": "Smith", 
        "profile_pic": "profess_sw_engg.jpg" 
        } 
       ], 
       "is_encourage_user": true, 
       "encourage_feed_id": "992" 
       }, 
       { 
       "posts": { 
       "pm_post_id": "4647", 
       }, 
       "tags_name": [], 
       "images_count": 2, 
       "images": [ 
        { 
        "gallery_id": "5549", 
        "name": "IMG_20161012_1832491.jpg", 

        }, 
        { 
        "gallery_id": "5550", 
        "name": "IMG_20161012_1832441.jpg", 

        } 
       ], 
       "post_user": [ 
        { 
        "first_name": "Michelle", 
        "last_name": "Smith", 
        "profile_pic": "profess_sw_engg.jpg" 
        } 
       ], 
       "is_encourage_user": true, 
       "encourage_feed_id": "993" 
       } 
    ] 

En Java j'ai utilisé code suivant.

try { 
       JSONArray tagNameArr = tempPostObject.getJSONArray("tags_name"); 
       for(int iloop=0;i<tagNameArr.length();iloop++) 
       { 
        String street = tagNameArr.getString(iloop); 
        Log.i("..........",""+street); 
       } 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
+0

vous devriez être en mesure d'utiliser 'gson' (https://github.com/google/gson) pour faire –

+0

fournir votre JSON –

+0

je vais l'ajouter à la question Mr.Arpit –

Répondre

1

essayer d'obtenir cette valeur de tags_name JSONArray.

ArrayList<String> temp = new ArrayList<String>(); 
JSONArray tagName= jsonResponse.getJSONArray("tags_name"); 
for(int j=0;j<tagName.length();j++){ 
    temp.add(tagName.getString(j)); 
} 
+0

comment cela passera à la méthode de setter? –

+0

@MohanRajS temp est une liste de tableau, donc en fonction de la position d'arraylist vous pouvez le définir dans votre setter. –

+0

Merci beaucoup mon frère. J'ai réglé le problème. fonctionne parfaitement –

1

Utilisez service et convertisseur Gson (lib de Google). sélectionnez le convertisseur Gson sur le site.

+0

j'ai confronté le problème dans la sérialisation de gson, quand mon tableau est vide il créera l'exception de pointeur nul, ainsi je me replie à l'ancienne méthode. –

+0

Maintenant, j'ai mis à jour l'API avec ma question, s'il vous plaît donner une suggestion bro, j'étais impuissant. Merci pour votre temps précieux. –

1

Vous pouvez utiliser gson

Gson gson = new GsonBuilder().serializeNulls().create(); 
RestaurantLoginResponseClass restaurantLoginResponse = gson.fromJson(loginResponseJsonString, RestaurantLoginResponseClass.class); 

Ajouter dépendances dans app.gradle

compile 'com.google.code.gson:gson:2.6.2' 
+0

j'ai confronté le problème dans la sérialisation de gson, quand mon tableau est vide il créera l'exception de pointeur nul, ainsi je retombe à l'ancienne méthode. –

+0

Vous pouvez vérifier la longueur du tableau ou vérifier si l'objet est nul ou non –

1

@MohanRaj, pourquoi vous le feriez pour l'analyser! , On ne sait pas, si vous voulez pour obtenir les valeurs et le conserver dans l'objet java ou l'enregistrer dans le système de fichiers, vous pouvez utiliser:

Gs

Gson gson = new Gson(); 
Staff obj = gson.fromJson(jsonInString, Staff.class); 

si vous avez une liste d'objets à l'intérieur votre JSON

vous pouvez créer une liste dans votre classe personnel quelque chose comme:

@SerializedName("hits") 
private List<Car> cars = new ArrayList<Car>(); 

GSON peut comprendre et analyser la liste entrante pour les objets.

vous pouvez obtenir de POJO JSON familier des outils java POJO: http://www.jsonschema2pojo.org/ et vous pouvez vérifier plus d'informations https://sites.google.com/site/gson/gson-user-guide http://www.java2blog.com/2013/11/gson-example-read-and-write-json.html

+0

Mr.Ahemed quelque temps mon tableau peut être vide, à ce moment la sérialisation ne m'aidera pas encore. Lancer l'exception du pointeur Null. –

+0

Mohan, vous voulez dire dans la réponse de Json elle-même? , peut être parfois ne pas contenir le tableau? –

+0

Bro j'ai un tableau avec une valeur de tableau vide "tags_name": [] comme ceci. –