Быстрый ответ на Alamofire JSON преобразовать в один разлинованный JSON - PullRequest
0 голосов
/ 08 мая 2018

Я впервые разрабатываю приложения для ios, и я использую Alamofire и Swiftyjson для управления сетью, но я не знаю, что не так с Alamofire, каждый раз, когда я анализирую JSON его вывод с пробелом и тому подобное пример:

{
   "ref_number":"EPFNKS",
   "datetime_of_booking":"2018-05-08 13:13",
   "datetime_pay_by":"2018-05-08 23:13",
   "nta":1250100,
   "fare_details":[
      {
         "basic":1070000,
         "tax":107000,
         "iwjr":5000,
         "insurance":0,
         "fuel":0,
         "adm":100000,
         "total":1282000,
         "generation":"adult",
         "surcharge":"0",
         "discount":"0"
      }
   ],
   "flights":{
      "go":[
         {
            "flight_num":"JT 912",
            "depart_port":"BPN",
            "depart_city":"Balikpapan",
            "depart_time":"18:05",
            "depart_date":"2018-05-10",
            "depart_datetime":"2018-05-10 18:05",
            "arrive_port":"BDO",
            "arrive_city":"Bandung",
            "arrive_time":"19:05",
            "arrive_date":"2018-05-10",
            "arrive_datetime":"2018-05-10 19:05",
            "class":"eco",
            "seat_class":"b"
         }
      ],
      "back":null
   },
   "inv_number":null
}

, поскольку я хочу снова отправить этот json на сервер, я должен преобразовать его в кодированный в формате utf8 json следующим образом:

{"ref_number":"EPFNKS","datetime_of_booking":"2018-05-08 13:13","datetime_pay_by":"2018-05-08 23:13","nta":1250100,"fare_details":[{"basic":1070000,"tax":107000,"iwjr":5000,"insurance":0,"fuel":0,"adm":100000,"total":1282000,"generation":"adult","surcharge":"0","discount":"0"}],"flights":{"go":[{"flight_num":"JT 912","depart_port":"BPN","depart_city":"Balikpapan","depart_time":"18:05","depart_date":"2018-05-10","depart_datetime":"2018-05-10 18:05","arrive_port":"BDO","arrive_city":"Bandung","arrive_time":"19:05","arrive_date":"2018-05-10","arrive_datetime":"2018-05-10 19:05","class":"eco","seat_class":"b"}],"back":null},"inv_number":null}

как я могу преобразовать JSON с пробелами в онлайн?

спасибо

1 Ответ

0 голосов
/ 08 мая 2018

У Alamofire есть несколько действительно интересных способов обработки кода. Честно говоря, я бы сказал, отбросьте зависимость SwiftyJSON, потому что вы делаете это нелегко. Просто работайте с данными напрямую, используя метод цепочки .responseData от Alamofire.

Я хочу упомянуть, что начиная с Swift 4, классы «Codable» делают все намного лучше для декодирования и кодирования объектов, чтобы делать именно то, что вы пытаетесь сделать здесь, более объектно-ориентированным способом. Вам просто нужно иметь дело с операторами try-do-catch, а также с возможным кодером и декодером в крайних случаях. Это сделает ваш код более надежным.

Вы можете найти отличный учебник о том, как это сделать, здесь

...