SWIFT Json проверить, существует ли заголовок объекта - PullRequest
0 голосов
/ 17 апреля 2020

Мой код проверяет, не является ли код: "эти данные" пустыми, как я могу проверить также, существует ли сам код. Некоторые ответы могут дать мне почти пустой JSON только с отметкой времени. Так что кода var там не будет.

Или есть лучший способ сделать это? так как My JSON равно

«Переменная на основе ввода текста», что приводит к «коду», который может отсутствовать, который будет иметь «некоторую информацию» или «»

Начало сценария:

struct Variables: Decodable {
  var code: String
}

typealias DecoderX = [String: Variables]

Предыдущая функция устанавливает входные данные из пользовательского текста, которые перепроверяются с базой данных, поэтому GetInfo будет вызываться, только если установлены UserDefault входные данные.

func GetInfo() {

  let Input1 = UserDefaults.standard.string(forKey: “UserInput1”) ?? “”
  let Input2 = UserDefaults.standard.string(forKey: “UserInput2”) ?? “”
  let Input3 = UserDefaults.standard.string(forKey: “UserInput3”) ?? “”
  print(“Input Check 1: \(Input1) \(Input2) \(Input3)”)

  // URL INFO With API key hidden
  let jsonTask = URLSession.shared.dataTask(with: requestURL) { data, response, error in
    if response == response {
      if let data = data, let body = String(data: data, encoding: .utf8) {
        do {
          let json = try? decoder.decode(DeocderX.self, from: data);
          DispatchQueue.main.async {
            print(“Input Check 2: \(json![Input1]!.code) \(json![Input2]!.code) \(json![Input3]!.code)”)
            if json?[Input1]?.code != nil {
              print("Good Information 1")
            } else {
              print("Found Nothing 1")
            }

            if json?[Input2]?.code != nil {
              print("Good Information 2")
            } else {
              print("Found Nothing 2")
            }
            if json?[Input3]?.code != nil {
              print("Good Information 3")
            } else {
              print("Found Nothing 3")
            }    
          }
        // rest of code not applicable

1 Ответ

1 голос
/ 17 апреля 2020

Вы можете использовать библиотеку SwiftyJSON. Вы можете найти его на этой ссылке

if let json = try? JSON(data: response.data!){
    if json["yourKey"]["otherKey"].exists() {
        print("exists")
    }
}

Надеюсь, это поможет ...

...