Портирование с одного Json на javas org.json.JSONObject, недостающие ключи не действуют одинаково - PullRequest
1 голос
/ 09 декабря 2010

У меня есть код в методе, который я перенес, который теперь генерирует JSONException в моем недавно созданном коде Java.

Ниже не работает, как раньше:

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

Я обнаружилиспользование

org.json.JSONObject 

ведет себя иначе, чем в моем старом коде, использующем другую библиотеку JSON в c #.Приведенный выше код всегда попадает в исключение.В моем старом коде, если ключ не существует, он возвращает ноль.Должен ли я ловить это исключение в случае, если ключ не существует?или есть другой способ, который я еще не обнаружил, чтобы сказать, есть ли у моего org.json.JSONObject ключ или нет в нем?

для ссылки старый код c # выглядел так:

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

Ответы [ 2 ]

1 голос
/ 09 декабря 2010

Чтобы узнать, есть ли у ключа JSONObject, используйте функцию JSONObject.has(String key).

, например

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

В JavaDoc функция has():

Определите, содержит ли JSONObject объект конкретный ключ.

1 голос
/ 09 декабря 2010

Если вы используете код из этой библиотеки , я думаю, вы хотите:

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

Ознакомьтесь с документацией для JSONObject класса:

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

Кроме того, все классы из библиотеки документированы здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...