c# - 从一个 Json 移植到 javas org.json.JSONObject,缺少键的行为不一样

标签 c# java json

我移植的方法中的代码现在在我新创建的 java 代码中抛出 JSONException。

以下内容不再像以前那样工作:

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

我发现使用

org.json.JSONObject 

与我在 c# 中使用不同 JSON 库的旧代码的行为不同。上面的代码总是会被异常捕获。在我的旧代码中,如果键不存在,它将返回 null。如果 key 不存在,我真的必须捕获该异常吗?还是有另一种我还没有发现的方法来判断我的 org.json.JSONObject 中是否有 key ?

供引用,旧的 C# 代码如下所示:

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

最佳答案

假设您使用 this library 中的代码,我相信你想要:

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

查看 JSONObject 类的文档:

http://www.json.org/javadoc/org/json/JSONObject.html

此外,库中的所有类均已记录 here .

关于c# - 从一个 Json 移植到 javas org.json.JSONObject,缺少键的行为不一样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4401916/

相关文章:

c# - Moq:在对不返回值的方法进行方法调用后回调

java - 比较字符串的最后一个字符在 Android Studio 中不起作用

ios - Swift 2.0 POST 主体为空

javascript - Javascript 中带有前导零的数字

c# - 为什么 'Any CPU' 应用程序在 x64 机器上以 x86 运行?

c# - 为什么在回发期间未设置 asp.net dropdownlist selectedvalue

c# - 单元测试未显示测试结果

java - 从带有波斯字符的数据接收字节数组

java - 如何使用Spring Security配置不同的路径?

php - 使用 Codeigniter 循环遍历此 json 对象 (jquery)