-1

我有一种将值从远程服务器数据保存到 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数据格式如下:

{“公司”:空,“名称”:“PC”,}

在这里,平台是 GamePlatformInfoList 数据对象,其内部将“HAS-A”公司作为 GameCompanyInfoShort 数据对象。因此,我将其用作“platform.company().name()”。在访问“name()”属性之前,我应该如何检查 null?请帮我。

4

3 回答 3

0

当你得到你的 json 时,只需写这个

if(jsonObject.getString("company")!=null){
     // do your thing here
 }

你也可以这样做json.isNull( "field-name" )

于 2017-09-27T17:35:23.320 回答
0
obj.length() == 0

或者

if (jsonObject.isNull("company"))
于 2017-09-27T17:35:53.627 回答
0

我使用三元运算符来处理 null ,如下所示。

values.put(TrackedPlatformEntry.COLUMN_PLATFORM_COMPANY_NAME, platform.company() != null ? platform.company().name() : "UNKNOWN COMPANY");

它对我有用。

于 2017-09-27T18:23:38.057 回答