使用GSON Library从JSON中提取时,使用Long进行空检查不起作用

时间:2014-10-29 18:47:39

标签: json null gson long-integer

我有一个Data类,如下所示

Class Data { 
    private Long check; 
    private Long cost; 
}

我的jsonString看起来像

"data": { "cost": 5 }

当我做的时候

Data data = gson.fromJson(jsonString, Data.class);

我检查null是否检查如下

if (data.check == null) {//print error message}

它不起作用。 {//打印错误消息}处的语句不会被执行。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

如果你有一个json样本,例如:

{
  "data": {
    "cost": 5
  }
}

这意味着你有一个对象,它有一个名为data的内部对象。所以你必须定义内部pojo(Data)及其持有者pojo(即DataHolder):

class DataHolder {
    private Data data;
}

class Data { 
    private Long check; 
    private Long cost; 
}

然后,您可以将json字符串反序列化为java实例:

GsonBuilder gsonBuilder = new GsonBuilder();
Gson gson = gsonBuilder.create();

String jsonString = "{\"data\": { \"cost\": 5 }}";
DataHolder dataHolder = gson.fromJson(jsonString, DataHolder.class);