Возможно преобразование JSONObject в строку java - PullRequest
1 голос
/ 10 января 2020

[УТОЧНИТЬ, ЧТО Я РАБОТАЮ В ОБРАБОТКЕ]

Все вопросы, которые я вижу, касаются того, чтобы сделать это наоборот. У меня есть переменная, которая является строкой, взятой из API погоды, и я хочу проверить, не является ли это определенным словом (например, «Дождь» или «Облака»). У меня есть структура для этого кода, но мне не нравится та часть, где я проверяю то, что объяснялось выше. Я подумал, что это может быть из-за того, что я пытаюсь сравнить JSONObject с обычной строкой java, но из всех мест, которые я посмотрел, я не получил прямого ответа о том, как его преобразовать. Кто-нибудь может мне здесь помочь?

Я не слишком хорош в кодировании, поэтому извините, если я немного медленен.

вот где создается JSONObject

JSONArray cityWeatherObject = city.getJSONArray("weather");
  JSONObject weather = cityWeatherObject.getJSONObject(0);
  cityDesc = weather.getString("main");

вот где я пытаюсь сравнить ее со строкой

void drawWeather() {
  println(cityDesc, "Clouds");
  if (cityDesc == "Rain") {
    for (int i = 0; i < rainDrops.length; i++) {
      rainDrops[i].wind = cityWind;
      rainDrops[i].fall();
      rainDrops[i].spawn();
    }
  }
  if (cityDesc == "Clouds") {
    println("Clouds selected");
    for (int i = 0; i < clouds.length; i++) {
      clouds[i].wind = cityWind;
      clouds[i].drift();
      clouds[i].spawn();
    }
  }
}

Пожалуйста, дайте мне знать, если мне нужно предоставить больше ясности.

1 Ответ

0 голосов
/ 10 января 2020

Чтобы сравнить содержимое двух строк, используйте метод equals (), как в if (a.equals (b)), а не if (a == b). String - это Object, поэтому при сравнении их с оператором == сравнивается, хранятся ли обе строки в одной и той же ячейке памяти. Использование метода equals () обеспечит сравнение фактического содержимого. (Ссылка на устранение неполадок содержит более подробное объяснение.)

Источник: здесь

...