0
{
   "App":[{
        "AppID": 0,
        "AppTime": "08:00 AM"
    }],
   "Rows": 0
}

これが私の JSON 応答ですが、POJO クラスにマップしてアクセスすると、NullPointerException.

ListResponse value = new Gson().fromJson(result, ListResponse.class);

import java.util.List;
public class ListResponse{

    public List<AppList> appList;

    public List<AppList> getAppList() {
        return appList;
    }
}

アクティビティ クラスで結果にアクセスしようとすると、このようにエラーが発生します。

public void accessData(ListResponse result){
    System.out.println(result.getAppList()); // I am getting null here.
}

アップデート:

私の AppList クラスには、AppID、AppTimeand行が含まれています。

4

2 に答える 2

0

GSonを使用してaStringをオブジェクト(この場合はListResponseオブジェクト)に変換する場合、このクラスの属性の名前は、json文字列のキーの値とまったく同じである必要があります。

あなたの場合の問題:jsonの鍵は「アプリ」です:

"App":[{
    "AppID": 0,
    "AppTime": "08:00 AM"
}],

そして、属性名はappListです。jsonに入れるか、クラスにappList変更してみてください。public List<AppList> App;これでnullが解決するはずです。

于 2012-11-05T14:57:45.210 に答える
0

応答を保存していると思いますvalue

 ListResponse value = new Gson().fromJson(result, ListResponse.class);

したがって、呼び出してみてくださいvalue.getAppList()

 public void accessData(ListResponse result){
    System.out.println(value.getAppList()); // shouldn't get NullPointer
 }

また、値が次のようになる可能性がある場合は、null チェックを入れることをお勧めしますnull

 public void accessData(ListResponse result){
    if(value != null){
        System.out.println(value.getAppList()); // shouldn't get NullPointer
     }else{
        System.out.println("value is null");
     }
 }
于 2012-11-05T14:44:03.327 に答える