java - 如何在Java中处理JSONParser中不存在的数据

标签 java json parsing

我有一个像这样的 JSONParser 方法:

 public ArrayList<Meaning> parseMeaning (JSONObject object)
    {
        ArrayList<Meaning> arrayList = new ArrayList<Meaning>();

        try
        {
            JSONObject value = object.getJSONObject("Value");
            JSONArray meaningArray = value.getJSONArray("Meanings");
            JSONObject meaningobj = null;

            for(int i = 0; i < meaningArray.length(); i++) {
                meaningobj = meaningArray.getJSONObject(i);

                Meaning myMeaning = new Meaning();

                myMeaning.MeaningID = meaningobj.getInt("MeaningID");
                myMeaning.Type1 = meaningobj.getInt("Type1");
                myMeaning.Type2= meaningobj.getInt("Type2");

                arrayList.add(myMeaning);
            }

        }
        catch (JSONException e)
        {
            Log.d("JSONParser=>parseMeaning", e.getMessage());
        }

        return arrayList;

    }

我的意义类是这样的:

public class Meaning {
   public int MeaningID;
   public Integer Type1;
   public Integer Type2;
}

当我运行代码时,某些 JSON 对象没有 Type2 值(因为它们在数据库中为 null)。所以我得到了这个异常:

D/JSONParser=>parseMeaning﹕ No value for Type2

您能告诉我当字段没有值时应该如何处理这种情况吗?谢谢。

最佳答案

您可以使用JSONObjecthas方法。

例如:

if(meaningobj.has("Type2")){

myMeaning.Type2= meaningobj.getInt("Type2");

}

关于java - 如何在Java中处理JSONParser中不存在的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31401973/

相关文章:

c# - 将 CSV(嵌套对象)转换为 JSON

parsing - 在一个命令中连接多个 awk 命令输出

java - Spring 4.3.0.RELEASE + Hibernate 5.2.0.Final + JPA 存储库

java - Dijkstra算法Java : Last edge always gets added instead of shortest

php - 检查 MySQL 表中是否存在值,然后选择 [Laravel 5]

java - 将 CSV 格式的 JSON 转换为表格

parsing - Chomp 中的序列组合器是什么?

php - 在解析网页时删除 javascript 代码

java - 如何使用 Gson 库将 java.util.List<E> 序列化为 Json?

java - 如何使对象全局可供其他类使用