2011-06-19 19 views
0

JSONレスポンスをGSONで解析するのを一日中止めてから、レスポンスからデータを抽出するためにjavabeansを正しく取得する方法を見つけました。 「Javaのリスト内の内部クラスを参照するには

public class LocationContainer { 

    public class paging { 
     private String previous; 
     private String next; 
    } 


    private List<Datas> data; 

    public class Datas { 


     private String message; 
     private String id; 
     private String created_time; 

     public class Tags { 
      private List<Data> datas; 
      public class Data { 
       private String id; 
       private String name; 
      } 

     } 

     public class Application { 

       private String id; 
       private String name; 

     } 

     public class From { 
      private String id; 
      private String name; 

     } 

     public class Place { 
      private String id; 
      private String name; 
      public class Location { 
       private int longitude; 
       private int latitude; 
         } 


     } 

    } 

} 

今、私は場所クラスとCREATED_TIME文字列の内部名の文字列のホールドを取得しようとしていますが、私はかなりのnoob午前以来、私は次のことができます。これは私の入れ子になったクラスやリストのレイアウトでありますそれを理解しているようだ。

私はしかし

String name = gson.toJson(item.data.get(1).Place.name); 

doesntの仕事を使用して

String time = gson.toJson(item.data.get(1).created_time); 

を使用してCREATED_TIME文字列を抽出することができました。

アイテムクラスは、GSONの出力で埋められたLocationContainerのインスタンスです。 すべてのポインタは非常に高く評価されるでしょう。

答えて

2

created_timeDataの可変部材あるので、あなたの最初の行は結構です。

ただし、Placeではありません。メンバー変数です。これは単なるクラス定義です。 Dataクラスのメンバー変数をインスタンス化する必要があります。例:

private Place place; 
+0

はい!ありがとうございます! gson.toJson(item.data.get(1).place.nameは私のプレースプレイスをデータクラスに挿入した後の名前文字列への参照です。 – Vincent

関連する問題