如何在获取值之前对JSONObject中的每个元素进行空检查?

时间:2019-11-12 18:41:11

标签: java json

我有带有一组字段的JSONObject,如果在angular应用程序中它具有空值,则不设置JSONObject中的字段。因此,在进行如下所示的spring-boot中的值之前,我对每个字段进行了空检查。

            JSONObject exclusionObj = (JSONObject) exclusionArray.get(i);
            SampleBean sample  = new SampleBean();

            if(exclusionObj.isNull("name")) {
                sample.setName(null);
            }else{
                sample.setName(exclusionObj.getString("name"));
            }

            if(exclusionObj.isNull("designation")) {
                sample.setDesignation(null);
            }else{
                sample.setdesignation(exclusionObj.getString("designation"));
            }

            if(exclusionObj.isNull("dept")) {
                sample.setDept(null);
            }else{
                sample.setDept(exclusionObj.getInt("dept"));
            }

有没有更好的方法可以在单个语句中而不是If-Else条件下编写此空检查?

1 个答案:

答案 0 :(得分:1)

您可以使用以下逻辑摆脱if-else条件:

Iterator<String> keys = exclusionObj.keys();
    while(keys.hasNext()) {
        if (!exclusionObj.isNull(keys.next())) {
            sample.setName(exclusionObj.getString(keys.next()));
        }
    }