gpt4 book ai didi

json - 从 Swift 中的 HTTPCookie 读取 JSON 错误不起作用

转载 作者:行者123 更新时间:2023-11-28 16:05:50 24 4
gpt4 key购买 nike

我正在尝试从 http cookie 中读取字符串序列化的 json 对象。字符串看起来像这样

"{\"status\": 400\054 \"code\": \"14040\"\054 \"links\": {\"self\": \"\"}\054 \"title\": \"Conflicting Email\"}"

因此其中有 unicode 实体,如:\054 这只是一个逗号 ,

当我尝试将字符串转换为这样的 json 对象时

if let data = cookieValue.data(using: .ascii) {
do {
let obj = try JSONSerialization.jsonObject(with: data, options: .allowFragments) as? [String : AnyObject]
// print("Successfull: \(obj)")
} catch let error as NSError {
// print("Cannot convert data to json: \(data)\nError: \(error)")
}
}

它返回一个错误提示:

Error: Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed. (Cocoa error 3840.)" (Invalid escape sequence around character 17.) UserInfo=0x78e586c0 {NSDebugDescription=Invalid escape sequence around character 17.}

字符 17 是 \054 的位置。

我需要做什么才能将 unicode 实体转换为文本?

最佳答案

尝试

var str2 = str.replacingOccurrences(of: "\054", with: ",")

这对我有用,这是我用于测试的代码。

import Foundation

var str = "{\"status\": 400\054 \"code\": \"14040\"\054 \"links\": {\"self\": \"\"}\054 \"title\": \"Conflicting Email\"}"

var str2 = str.replacingOccurrences(of: "\054", with: ",")

let data = str2.data(using: String.Encoding.utf8, allowLossyConversion: false)!

do {
let json = try JSONSerialization.jsonObject(with: data, options: []) as! [String: AnyObject]
for (key, value) in json {
print(key)
}
} catch let error as NSError {
print("Failed to load: \(error.localizedDescription)")
}

关于json - 从 Swift 中的 HTTPCookie 读取 JSON 错误不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40305442/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com