Swift 编码 JSON 字典 [String: Any],无法去掉引号

问题描述

我们正在从 API 中获取一些数据,并将其解码为 [String: Any] 字典。
然后我们想要获取这个字典,并为键 "$twitter_card" 改变一个值。 然后我们想将其编码回 Data,然后将其发送回 API。


print(seeEditResponseString)
guard let data = seeEditResponseString.data(using: .utf8) else {return}

if let dict = try? JSONSerialization.jsonObject(with: data,options: []) as? [String: Any],var dataDict = dict["data"] as? [String: Any] {

    let summary: Any = "summary"
    print(dataDict)
    dataDict["$twitter_card"] = summary
    print(dataDict)


    let url = URL(string: "https://api2.branch.io/v1/url?url=\(link)")!
    var request = URLRequest(url: url)
    request.httpMethod = "PUT"

    let jsonData = try? JSONSerialization.data(withJSONObject: ["branch_key": EnvConstants.branchKey,"branch_secret": EnvConstants.branchSecretKey,"data": dataDict])
    request.httpBody = jsonData

设置"$twitter_card"前打印语句:

["~feature": TwitterShare,"$publicly_indexable": 1,"$one_time_use": 0,"~id": 881331908143151724,"~creation_source": 3,"~channel": twitter,"$og_description": HELLO WORLD,"$twitter_app_country": US,"$twitter_card": summary_large_image]

设置 "$twitter_card" 后:

["~feature": TwitterShare,"$twitter_card": "summary"]

注意值中没有引号之前,但之后有引号。我们认为 API 请求因此而失败,但无法弄清楚如何将请求中的相同数据类型匹配回来。

编辑:这是作为 String 的响应:

"{\"data\":{\"$og_title\":\"Locker Room\",\"$publicly_indexable\":true,\"$deeplink_path\":\"open?link_click_id=881284646317326515\",\"~creation_source\":3,\"$locally_indexable\":true,\"$og_description\":\"HELLO WORLD\",\"$uri_redirect_mode\":\"2\",\"$identity_id\":\"880941693229513892\",\"$twitter_card\":\"summary_large_image\",\"$og_image_url\":\"https://bettylabs.io/lockerroom_logo_play_wide.png\",\"room\":\"91939938-1171-4e61-9ecf-5934b92298cf\",\"~feature\":\"TwitterShare\",\"url\":\"https://dummylit.com/CScjyeLyidb\",\"$twitter_title\":\"Disco Dev\",\"$fallback_url\":\"https://dummylit.com/room/91939938-1171-4e61-9ecf-5934b92298cf\",\"+url\":\"https://dummylit.com/CScjyeLyidb\",\"$ios_deeplink_path\":\"open?link_click_id=881284646317326515\",\"$canonical_identifier\":\"room/91939938-1171-4e61-9ecf-5934b92298cf\",\"$twitter_app_country\":\"US\",\"inviterId\":\"a5e7f4b2-580a-4661-aad3-2c78bb4a78c7\",\"$one_time_use\":false,\"~id\":\"881743970732394436\",\"~channel\":\"twitter\",\"$twitter_description\":\"Green Sock\"},\"type\":0,\"feature\":\"TwitterShare\",\"channel\":\"twitter\"}"

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...