как разобрать JSON, используя инструмент отображения объектов

Это JSON

[{"start_hour": "08:00:00", "end_hour": "10:00:00", "call_duration": "30"}]

Я попытался разобрать следующим образом

class DoctorAvailablityResponseData: Mappable { var startDateHour : String? var callDuration : Int? var endDateHour : String? required init?(_ map: Map){ } func mapping(map: Map) { callDuration <- map["call_duration"] endDateHour <- map["end_hour"] startDateHour <- map["start_hour"] } } 

а также

 let user = Mapper<ResponseDoctorAvailablity>().map(response.result.value) 

Но он ломается при разборе, находит нулевое значение.

4 Solutions collect form web for “как разобрать JSON, используя инструмент отображения объектов”

Тип данных неверен. Вам нужно дать «DoctorAvailablityResponseData», но вы дали ResponseDoctorAvailablity для сопоставления.

  let user = Mapper<ResponseDoctorAvailablity>().map(response.result.value) 

пример

  class Doctor: Mappable { var startDateHour : String? var callDuration : String? var endDateHour : String? required init?(_ map: Map){ } func mapping(map: Map) { callDuration <- map["call_duration"] endDateHour <- map["end_hour"] startDateHour <- map["start_hour"] } } // Sample Response let response : NSMutableDictionary = NSMutableDictionary.init(object: "08:00:00", forKey: "start_hour"); response.setValue("10:00:00", forKey: "end_hour"); response.setValue("30", forKey: "call_duration"); // Convert response result to dictionary type. It is very easy. let userdic = Mapper<Doctor>().map(response) // Map to correct datatype. NSLog((userdic?.callDuration)!); // If you result is nested object. you will easily get zero index position object and parse it. let nestedObjectArray :NSArray = NSArray.init(array: [response]); let userArray = Mapper<Doctor>().map(nestedObjectArray[0]) NSLog((userArray?.callDuration)!); 

По словам пользователя JSON 'call_duration' также является строковым типом. Изменить строку

 var callDuration : Int? 

чтобы:

 var callDuration : String? 

Вы могли бы также обернуть их все в инструкции «guard» таким образом, если вы получите нуль, который вы можете передать в 0, чтобы представить, что элемент пуст или не имеет длины.

Ваши данные json выглядят как массив, в котором первым элементом является словарь.

[{ "start_hour": "08:00:00", "end_hour": "10:00:00", "call_duration": "30" }] .

В дополнение к изменению типа call_duration в String? вы пытались убедиться, что на самом деле вы передаете словарь, а не массив к функции карты? Попробуйте пропустить это и посмотреть, работает ли это.

{ "start_hour": "08:00:00", "end_hour": "10:00:00", "call_duration": "30" }

  • thread 1: EXC_BAD_ACCESS (код = 1, адрес = 0x70 ошибка при appDelegate при нажатии кнопки «Сохранить» или «назад»
  • Правильное использование RxSwift для запросов на цепочку, flatMap или что-то еще?
  • Захват системы или звука приложения с помощью AudioKit
  • Xcode 8 не может открыть Model.xcdatamodeld
  • ScrollView добавляет пространство в верхней части subview xcode 6 Swift
  • как я могу получить доступ к IBOutlet в другом классе? в быстрой
  • Временные метаданные с AVPlayer
  • IOS 10 objectForKey («ключ») совместимость
  • Swift - установить ярлык поверх других элементов представления.
  • Изменение фона текстового поля UISearchBar
  • iOS Ошибка Dropbox загрузки миниатюр
  • Interesting Posts

    Политика поиска Google

    Найти все рабочие IP-адреса в сети Wi-Fi маршрутизатора ios

    Выполняет ли AFHTTPRequestOperationManager запросы на операциюQueue?

    Любой способ использовать некоторые Scala для кодирования iOS?

    ios 8 Подробный текст UITableViewCell не корректно обновляется

    Как использовать метод диалога FBConnect для размещения UIImage на моей стене?

    nsinvalidargumentexception «причина» avplayeritem не может быть связана с более чем одним экземпляром avplayer '

    Файл конфигурации приложения iOS

    GPUImage: применить filer к существующему видеофайлу

    Макет приложения iOS ошибочен в строке состояния вызова

    Программное вертикальное выравнивание UIPageControl в Superview с использованием NSLayoutConstraint

    Как определить, как пользователь разблокирует устройство, но если центр уведомлений просто показан как Dropbox и 1Password?

    Синхронизация в реальном времени

    отображение PDF-файла в UIScrollview по горизонтали

    Ячейки UICollectionView исчезают

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.