我有一个像这样的 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
您能告诉我当字段没有值时应该如何处理这种情况吗?谢谢。
最佳答案
您可以使用JSONObject
的has
方法。
例如:
if(meaningobj.has("Type2")){
myMeaning.Type2= meaningobj.getInt("Type2");
}
关于java - 如何在Java中处理JSONParser中不存在的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31401973/