我有一种方法可以将值保存到远程服务器数据的ContentValues中,如下所示:
public static ContentValues platformInfoToContentValues(@NonNull
GamePlatformInfoList platform) {
ContentValues values = new ContentValues();
values.put(TrackedPlatformEntry.COLUMN_PLATFORM_ID, platform.id());
values.put(TrackedPlatformEntry.COLUMN_PLATFORM_NAME, platform.name());
values.put(TrackedPlatformEntry.COLUMN_PLATFORM_ORIGINAL_PRICE, platform.original_price());
values.put(TrackedPlatformEntry.COLUMN_PLATFORM_RELEASE_DATE, platform.release_date());
values.put(TrackedPlatformEntry.COLUMN_PLATFORM_COMPANY_NAME, platform.company().name());
values.put(TrackedPlatformEntry.COLUMN_PLATFORM_SMALL_IMAGE, platform.image().small_url());
values.put(TrackedPlatformEntry.COLUMN_PLATFORM_MEDIUM_IMAGE, platform.image().medium_url());
values.put(TrackedPlatformEntry.COLUMN_PLATFORM_HD_IMAGE, platform.image().super_url());
return values;
}
在最后一行中, platform.company()值为null,这会导致我的应用崩溃。
我的JSON
数据采用以下格式:
{ “公司”:null, “名字”:“PC”, }
这里,平台是GamePlatformInfoList数据对象,它将“HAS-A”公司作为GameCompanyInfoShort数据对象置于其中。因此,我使用它作为“platform.company()。name()”。在访问“name()”属性之前,我应该如何检查null?请帮帮我。
答案 0 :(得分:0)
当你得到你的json时,只需写下这个
if(jsonObject.getString("company")!=null){
// do your thing here
}
您也可以执行此操作json.isNull( "field-name" )
。
答案 1 :(得分:0)
obj.length() == 0
或
if (jsonObject.isNull("company"))
答案 2 :(得分:0)
我使用三元运算符来处理null,如下所示。
values.put(TrackedPlatformEntry.COLUMN_PLATFORM_COMPANY_NAME, platform.company() != null ? platform.company().name() : "UNKNOWN COMPANY");
它对我有用。