问题标签 [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.

0 投票
1 回答
615 浏览

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)

0 投票
3 回答
584 浏览

swift - JSON解码器使用协议

我正在使用一个协议来创建几个我用来解码的结构JSONDecoder。这是我想要实现的代码示例。

以下是 dog 和 cat 的单独 JSON 有效负载:

因此,当我解码 JSON 时,我不确定我将拥有什么 JSON,狗还是猫。我试过这样做:

但最终出现此错误:

在参数类型“Animal.Protocol”中,“Animal”不符合预期的“Decodable”类型

关于解析 dog 或 cat 返回实例的最佳方法的任何想法Animal

谢谢

0 投票
1 回答
1271 浏览

json - 是否可以使用 JSONDecoder 解码其他参数?

我们有一些后端返回的响应:

响应模型结构:

如何JSONDecoder将所有未知的键值对组合成params属性?

0 投票
1 回答
995 浏览

swift - 在 swift 中的 post 方法后接收 JSON 时出错

我正在向我的后端发送一个 POST 请求,但是我收到了这个错误:

这是我用来发送/获取数据的代码:

使用我的终端,我正在尝试执行手动 POST 请求,我得到了这个:

这让我想知道唯一可能的错误可能是我如何解码 JSON。为什么它还能与终端一起使用?有任何想法吗?

正如@patru 建议的那样,我在此处包含了打印内容:

结果是这样的:

好像我像使用 curl 一样获取 JSON,但由于某种原因,swift 不认为它是有效的 JSON?这就是我的 post 方法在后端的样子:

编辑

变成:

0 投票
1 回答
39 浏览

php - 如何接收用 angularjs 填充并由 ajax 发送到服务器端(PHP)的 json 对象?

我有以下 json 对象:

我使用ajax发送对象如下:

我尝试使用$_GET['name']接收数据,但没有成功

我的PHP代码:

$item_name=json_decode($_GET['name']);

我也尝试过: $data=json_decode($_GET['data']);

但它们都不起作用!

提前致谢

0 投票
1 回答
2208 浏览

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:

0 投票
2 回答
449 浏览

json - URLSession 类型不匹配错误

尝试使用 Swift json 解码器解析 json 时出现类型不匹配错误。

我只是找不到正常解析它的方法。

错误:

解码器代码:

和课程:

第一的:

第二:

第三:

我想我在过去 6 小时内尝试了所有方法来修复它,请帮忙!

编辑:

我放错了三等舱。现在是正确的

0 投票
3 回答
645 浏览

swift - Swift JSONDecoder 处理字典数组的字典

这是一个与 swift 上的 JSONDecoder 可编码功能相关的模型设计相关问题。

我有以下 JSON:

我正在尝试使用新的 swift 4 Codeable 功能对此进行解码。

因此我创建了我的结构如下:

一旦我在这个 json 上运行 JSONDecoder().decode,我就会得到上述格式的模型对象。但是,Author 类中的 links 属性是作为字典获取的。现在要访问 self 字段的值,我需要大致执行以下操作:

有没有更好的方法来为结构建模以避免这种情况?

0 投票
1 回答
1867 浏览

ios - 如何在 swift 4.1 和 xcode 9.3 中使用 JSONDecoder 解码嵌套的 JSON 数组和对象?

我是iOS新手,无法解码包含许多嵌套数组和对象的嵌套JSON文件。我正在使用JSONDecoder进行解码,但在某处我犯了错误或解码不正确。

我的解码器是

它抛出的错误是

我的结构是

和数据模型类

我的 JSON 是

请有人告诉我如何正确解码或我需要对结构进行哪些更改。

0 投票
1 回答
137 浏览

json - 当属性可以是整数或布尔值时,什么解析对象?

有时服务器会向我发送布尔属性(真,假)。有时服务器将属性作为整数 (0,1) 发送给我。

如何通过 Swift 4 中的标准 Decodable 解码这种情况?

例子。我有:

来自服务器的响应是:

1)“pickup_all_day”:真,

2)“pickup_all_day”:0