问题标签 [jsondecoder]
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.
swift - 通用解码器停止使用 swift 4.1
所以我们的 API 中有两种类型的 JSON 响应:
和
为了解码它们,我们使用 JSONDecoder() 和以下通用响应结构:
这适用于 Swift 4.0 使用.map(Response<[MyObject]>.self)
or.map(Response<MySingleObject>.self)
但由于某种原因,这不再适用于 Swift 4.1 和 Xcode 9.3。看起来它根本没有映射“数据”,因此认为列表[MyObject]
位于第一级。
请注意,“creationDate”是 的属性MyObject
。日期格式绝对正确(.formatted(customFormatter)
在解码器中设置为),因为它适用于 Xcode 9.2 中的 Swift 4.0
我们怎样才能在 Swift 4.1 中保持相同的行为?此处的目标不是为每个 API 响应创建类型化Response
类型,而是使用泛型,因为唯一的区别是响应对象类型,有时它返回一个列表,有时返回一个下面的对象data
。
也相关:有没有办法强制执行,如果我们使用Response<[MyObject]>.self
它也MyObject
必须符合Codable
?
提前致谢。
编辑:
下面的代码在 Xcode 9.2 和 Swift 4 中正确映射,但在 Xcode 9.3 和 Swift 4.1 中没有映射(创建 nil)
swift - JSON解码器使用协议
我正在使用一个协议来创建几个我用来解码的结构JSONDecoder
。这是我想要实现的代码示例。
以下是 dog 和 cat 的单独 JSON 有效负载:
因此,当我解码 JSON 时,我不确定我将拥有什么 JSON,狗还是猫。我试过这样做:
但最终出现此错误:
在参数类型“Animal.Protocol”中,“Animal”不符合预期的“Decodable”类型
关于解析 dog 或 cat 返回实例的最佳方法的任何想法Animal
?
谢谢
json - 是否可以使用 JSONDecoder 解码其他参数?
我们有一些后端返回的响应:
响应模型结构:
如何JSONDecoder
将所有未知的键值对组合成params
属性?
swift - 在 swift 中的 post 方法后接收 JSON 时出错
我正在向我的后端发送一个 POST 请求,但是我收到了这个错误:
这是我用来发送/获取数据的代码:
使用我的终端,我正在尝试执行手动 POST 请求,我得到了这个:
这让我想知道唯一可能的错误可能是我如何解码 JSON。为什么它还能与终端一起使用?有任何想法吗?
正如@patru 建议的那样,我在此处包含了打印内容:
结果是这样的:
好像我像使用 curl 一样获取 JSON,但由于某种原因,swift 不认为它是有效的 JSON?这就是我的 post 方法在后端的样子:
编辑
变成:
php - 如何接收用 angularjs 填充并由 ajax 发送到服务器端(PHP)的 json 对象?
我有以下 json 对象:
我使用ajax发送对象如下:
我尝试使用$_GET['name']接收数据,但没有成功
我的PHP代码:
$item_name=json_decode($_GET['name']);
我也尝试过: $data=json_decode($_GET['data']);
但它们都不起作用!
提前致谢
json - 如何使用未知密钥解码 json
大家,如果其中一个字段未知,如何序列化 json 结构?
我的json是:
但:
"19":{"is_all":false,"values":[185,182,178],"include":true}
"23":{"is_all":false,"values":[198,199,201],"include":true}
19 和 23 - 是字符串未知值,由 API 生成。
所以我的结构是:
我像这样解码这个json:
所以,在输出我得到零的brand_num:
json - URLSession 类型不匹配错误
尝试使用 Swift json 解码器解析 json 时出现类型不匹配错误。
我只是找不到正常解析它的方法。
错误:
解码器代码:
和课程:
第一的:
第二:
第三:
我想我在过去 6 小时内尝试了所有方法来修复它,请帮忙!
编辑:
我放错了三等舱。现在是正确的
swift - Swift JSONDecoder 处理字典数组的字典
这是一个与 swift 上的 JSONDecoder 可编码功能相关的模型设计相关问题。
我有以下 JSON:
我正在尝试使用新的 swift 4 Codeable 功能对此进行解码。
因此我创建了我的结构如下:
一旦我在这个 json 上运行 JSONDecoder().decode,我就会得到上述格式的模型对象。但是,Author 类中的 links 属性是作为字典获取的。现在要访问 self 字段的值,我需要大致执行以下操作:
有没有更好的方法来为结构建模以避免这种情况?
ios - 如何在 swift 4.1 和 xcode 9.3 中使用 JSONDecoder 解码嵌套的 JSON 数组和对象?
我是iOS新手,无法解码包含许多嵌套数组和对象的嵌套JSON文件。我正在使用JSONDecoder进行解码,但在某处我犯了错误或解码不正确。
我的解码器是
它抛出的错误是
我的结构是
和数据模型类
我的 JSON 是
请有人告诉我如何正确解码或我需要对结构进行哪些更改。
json - 当属性可以是整数或布尔值时,什么解析对象?
有时服务器会向我发送布尔属性(真,假)。有时服务器将属性作为整数 (0,1) 发送给我。
如何通过 Swift 4 中的标准 Decodable 解码这种情况?
例子。我有:
来自服务器的响应是:
1)“pickup_all_day”:真,
2)“pickup_all_day”:0