首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swift Alamofire Escape a JSON

Swift Alamofire Escape a JSON
EN

Stack Overflow用户
提问于 2018-04-30 17:21:56
回答 1查看 316关注 0票数 0

我正在使用swift Alamofire,但我遇到了一个问题,我想将数据传递给服务器,但服务器需要转义的JSON字符串,如下所示

代码语言:javascript
复制
{\"status\":1,\"id\":\"1bcc3331b09d32f7439ad9d5f2acfb35\",\"progress\":[{\"airline_code\":\"SRI\",\"ctr\":0,\"rate\":5,\"state\":1,\"data\":null}]}

但我从响应中得到了以下数据:

代码语言:javascript
复制
{"status":1,"id":"1bcc3331b09d32f7439ad9d5f2acfb35","progress":[{"airline_code":"SRI","ctr":0,"rate":5,"state":1,"data":null}]}

如何将JSON转换为转义的JSON,

我试过这个在线转换器Converter Escape JSON

而且它的工作很完美,我怎么能在swift Xcode中像这样转义。

更新完整的json (查看提要内部:)

代码语言:javascript
复制
{
   "flight_child":"0",
   "child":"[]",
   "depart_hidden_transit":"0",
   "depart_adult_surcharge":"0",
   "depart_flight":"[{\"airlineCode\":\"LIO\",\"arriveCity\":\"Jakarta Soekarno Hatta\",\"arriveDate\":\"2018-04-28\",\"arriveDatetime\":\"2018-04-28 20:05\",\"arrivePort\":\"CGK\",\"arriveTime\":\"20:05\",\"arriveTimezone\":7.0,\"departCity\":\"Yogyakarta\",\"departDate\":\"2018-04-28\",\"departDatetime\":\"2018-04-28 18:50\",\"departPort\":\"JOG\",\"departTime\":\"18:50\",\"departTimezone\":7.0,\"flightNumber\":\"JT 555\",\"stopCount\":0}]",
   "auth_mode":"",
   "flight_infant":"0",
   "flight_to":"CGK",
   "flight_return":"",
   "depart_child_discount":"0",
   "infant":"[]",
   "depart_choice":"d3ea46551c769f462c3e1a4dd25c933d",
   "depart_child_surcharge":"0",
   "version_code":"3",
   "contact_email":"mul@gmai.oc",
   "contact_name":"Mulia RIfai",
   "adult":"[[\"Mr\",\"Muhammad Fuad\",null,null,\"0\",null,null,null,null,null]]",
   "flight_trip":"oneway",
   "flight_adult":"1",
   "depart_adult_discount":"0",
   "contact_phone":"0972312",
   "depart_carrier":"LIO",
   "client_password":"arena123",
   "depart_infant_discount":"0",
   "depart_infant_surcharge":"0",
   "client_username":"androidarena",
   "flight_depart":"2018-05-03",
   "feed":"{\"status\":1,\"id\":\"1bcc3331b09d32f7439ad9d5f2acfb35\",\"progress\":[{\"airline_code\":\"SRI\",\"ctr\":0,\"rate\":5,\"state\":1,\"data\":null}]}",
   "contact_title":"Mr.",
   "flight_from":"JOG",
   "depart_class":"eco",
   "device_id":"123456789011123"
}
EN

回答 1

Stack Overflow用户

发布于 2018-04-30 17:53:48

即使这应该由服务器来修复。一个令人讨厌的破解方法是首先将应该作为字符串传递的json字符串化,然后将出现的双引号替换为\“。

代码语言:javascript
复制
let dic = ["status":1,
               "id":"1bcc3331b09d32f7439ad9d5f2acfb35",
               "progress":[["airline_code":"SRI","ctr":0,"rate":5,"state":1,"data":nil]
    ]

        ] as [String : Any]

    if let json = try? JSONSerialization.data(withJSONObject: dic, options: JSONSerialization.WritingOptions.init(rawValue: 0)) {
        if let str = String(data: json, encoding: String.Encoding.utf8)?.replacingOccurrences(of: "\"", with: "\\\"") {
            print(str)
        }
    }

结果:

代码语言:javascript
复制
{\"id\":\"1bcc3331b09d32f7439ad9d5f2acfb35\",\"status\":1,\"progress\":[{\"state\":1,\"airline_code\":\"SRI\",\"data\":null,\"ctr\":0,\"rate\":5}]}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50097519

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档