Swift 4解码简单的根级json值

Swift 4解码简单的根级json值,第1张

概述根据JSON标准 RFC 7159,这是有效的json: 22 如何使用swift4的可解码将其解码为Int?这不起作用 let twentyTwo = try? JSONDecoder().decode(Int.self, from: "22".data(using: .utf8)!) 它适用于良好的’JSONSerialization和.allowFragments 阅读选项.从 docume 根据JsON标准 RFC 7159,这是有效的Json:
22

如何使用swift4的可解码将其解码为Int?这不起作用

let twentyTwo = try? JsONDecoder().decode(Int.self,from: "22".data(using: .utf8)!)
它适用于良好的’JsONSerialization和.allowFragments
阅读选项.从 documentation:

allowFragments

SpecifIEs that the parser should allow top-level objects that are not an instance of NSArray or NSDictionary.

例:

let Json = "22".data(using: .utf8)!if let value = (try? JsONSerialization.JsonObject(with: Json,options: .allowFragments)) as? Int {    print(value) // 22}

但是,JsONDecoder没有这样的选项,也不接受顶级
不是数组或字典的对象.人们可以在中看到
source code那个decode()方法调用
JsONSerialization.JsonObject()没有任何选项:

open func decode<T : Decodable>(_ type: T.Type,from data: Data) throws -> T {    let topLevel: Any    do {       topLevel = try JsONSerialization.JsonObject(with: data)    } catch {        throw DeCodingError.dataCorrupted(DeCodingError.Context(CodingPath: [],deBUGDescription: "The given data was not valID JsON.",underlyingError: error))    }    // ...    return value}
总结

以上是内存溢出为你收集整理的Swift 4解码简单的根级json值全部内容,希望文章能够帮你解决Swift 4解码简单的根级json值所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1046391.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存