如何处理来自JSON数据的空响应?

时间:2017-09-27 17:32:20

标签: android json sqlite android-sqlite content-values

我有一种方法可以将值保存到远程服务器数据的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?请帮帮我。

3 个答案:

答案 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");

它对我有用。