问题标签 [codable]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
swift4 - 在 swift4 中使类符合可编码协议
使结构符合 Codable (Encodable & Decodable) 协议非常容易:只需声明它。但是,如果我想让类符合 Codable,我是否必须编写所有锅炉代码(CodingEnum、init(来自解码器:解码器)、编码(到编码器:编码器)等)?
arrays - 如果单元素解码失败,Swift JSONDecode 解码数组将失败
在使用 Swift4 和 Codable 协议时,我遇到了以下问题 - 看起来没有办法允许JSONDecoder
跳过数组中的元素。例如,我有以下 JSON:
还有一个Codable结构:
解码此 json 时
结果products
为空。这是意料之中的,因为 JSON 中的第二个对象没有"points"
键,而在structpoints
中不是可选的。GroceryProduct
问题是如何允许JSONDecoder
“跳过”无效对象?
swift - 使用 Swift 4 的可解码协议进行嵌套的 JSON 服务器响应
我正在尝试实现 Swift 4 的新 Decodable 协议并且很难接近它。
这是我的 JSON 服务器响应:
data
解码响应部分的最佳方法是什么?另外,如果data
突然是一个array
而不是一个对象会发生什么,我怎样才能支持这两种数据类型?
非常感谢 :)
generics - 在通用 Codables 上使用 JSONDecoder 时的循环元数据依赖关系
Swift 4 的 Foundation 库现在有一个内置的 JSON 解析器。它运行良好,除了我在以特定方式使用它时遇到的问题。如果正在解码的对象在另一个结构中被引用为泛型(下面的示例),则解码器会生成运行时错误:
GenericCache(0x106a31830):检测到循环元数据依赖,正在中止
这是从服务返回的示例 JSON 字符串:
以下是两个对应的 Swift 4 数据模型:
鉴于上述示例,此代码将触发运行时错误:
这是一个演示上述代码的项目:
https://github.com/UberNick/CodeableGenericBug
我想知道 GenericWrapper 使用的嵌套结构是否有问题。许多使用 Codable 的指南在他们的示例中使用了这些指南。当内部结构的变量定义“attributes:T”被诸如“attributes:Foo”之类的具体类型替换时,嵌套结构确实起作用。当内部结构(GenericWrapperData)在外部定义时,它也可以工作。这些工作案例也在上面链接的示例项目中。
我的问题是为什么运行时错误?这是框架问题还是代码有问题?
ios - 斯威夫特:JSONEcoder EXC_BAD_ACCESS
我想在我的 Swift 应用程序中编码和解码一些对象。我有以下 2 节课。
这是代码,我如何尝试对对象进行编码。
我认为问题在于,我尝试对子类 ConsumptionTile 的对象进行编码,但数组的类型为 [Tile]。但我不知道如何解决这个问题。我必须将所有 Tile 类编码为一个数据对象。以后会有更多的子类,而不仅仅是 ConsumptionTile。
我在运行时遇到的错误只是 try jsonEncoder.encode(defaultTiles) 行上的一个断点,带有消息 Thread 1: EXC_BAD_ACCESS (code=1, address=0x8)
我希望有人能帮帮忙。谢谢!
json - 您如何设计一个可以是空字符串或 int 的可编码 JSON 字段
如何处理来自 JSON 的可编码结构的字段,该字段可以是空字符串或 int?我尝试使用任何但不符合可编码的数据类型。我认为如果它没有值,那么它会返回一个空字符串,否则,它会返回一个 int。我正在使用 Swift 4 和 XCode 9。提前致谢
ios - URL 未使用 Decodable Swift 4 协议正确解码
我从服务器收到这个 url 字符串:
值为:
http://site.se/wp-content/uploads/2012/09/Hidløgsma.jpg
使用 Swift 4 Decodable 协议失败并出现错误:
无效的 URL 字符串。
有没有办法让它与上面的字符串一起工作?
swift - 如何在 Swift 中使用 Codable 转换带有可选小数秒的日期字符串?
我正在用 Swift 的 Codable 替换我的旧 JSON 解析代码,并且遇到了一些障碍。我想这不是一个可编码的问题,而是一个 DateFormatter 问题。
从结构开始
和一个json字符串
现在让我们解码
但是,如果我们更改日期以使其具有小数秒,例如:
现在它坏了。日期有时会以小数秒返回,有时则不会。我用来解决它的方法是在我的映射代码中,我有一个转换函数,它尝试使用和不使用小数秒的 dateFormats。但是,我不太确定如何使用 Codable 来处理它。有什么建议么?
json - 解析无效的 JSON Swift 4
我的 Json 看起来像这样:
我一直在尝试使用 Swift4 Codable 协议来解析 JSON,并使用它取得了很好的效果,但对于我的生活,我无法打破这种结构。外部data =
使其无效 JSON,但在尝试将数据传递给 JSONDecoder 之前,我似乎找不到任何修改数据的方法。
有什么方法可以将数据作为字符串接收,这样我就可以删除最外层的字符并解析剩余的 JSON 对象?
swift4 - 为什么#Codable#不能在根类被Codable协议确认的子类中工作
[Xcode 9,斯威夫特 4]
我测试以下代码:
为什么输出是-1,而不是1?