2010-12-09 49 views
1

我在我移植的方法中有代碼,現在在我新創建的Java代碼中拋出JSONException。從一個Json移植到javas org.json.JSONObject,丟失的鍵不是相同的

下面不起作用,因爲它用於:

if (theEvent.getString("plugin")== null) 
    { 
     processNonPluginEvent(theEvent); 
     return; 
    } 

我發現使用

org.json.JSONObject 

行爲不同於在C#中使用不同的JSON庫做了我的舊代碼。上面的代碼總是被異常抓住。在我的舊代碼中,如果一個鍵不存在,它將返回null。在鑰匙不存在的情況下,我是否真的必須趕上這種例外情況?還是有另一種方式,我還沒有發現,以確定我的org.json.JSONObject是否有密鑰或不在其中?

參考舊的C#代碼看起來像:

if (theEvent["plugin"] == null) 
    { 
     processNonPluginEvent(theEvent); 
     return; 
    } 

回答

1

要查看JSONObject是否有密鑰,請使用JSONObject.has(String key)函數。

例如

if (!theEvent.has("plugin")) { 
    processNonPluginEvent(theEvent); 
} 

根據JavaDoc中,has()功能:

確定是否把JSONObject含有 特定鍵。