问题标签 [jsonencoder]

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 投票
2 回答
7547 浏览

json - 快速查看 JSONEncode() 输出的优雅方式

我怎样才能看到的输出json

如果我使用print(json)我得到的唯一东西是Optional(45 bytes)

0 投票
2 回答
831 浏览

json - 具有多种结构的 JSONEncoder

嗨,我有多个 JSON 数据包,如下所示。

和这个

我的数据包有结构,它适用于一种数据包结构。但是如何将它用于多个数据包结构。

现在我想编码 JSON 取决于我的数据

如何做到这一点,或者我需要为每个数据包使用我的数据结构的其他结构?

0 投票
2 回答
1022 浏览

json - 将 JSON 编码的类转换为 Alamofire 参数的字典

假设我得到了以下结构

我想要的是获取类属性和值,[String: Any]以便像这样通过 Alamofire 发送它:

0 投票
2 回答
394 浏览

swift - 在 Swift 字典中存储 Encodables

我希望将模型对象存储在 Dictionary 中,并希望将整个字典序列JSONEncoder化为数据,然后将其序列化为字符串并保存。

这个想法是使用 Swift 4 开箱即用Encodable,以确保我添加到字典中的任何内容都将被序列化,其中可以包括原语和自定义对象(它们本身将符合Encodable)。

挑战是我应该将字典声明为什么类型:

  • 如果我使用[String: Any],它将不知道如何编码Any,并且如果我必须将其转换为实际的具体类型,这有点违背泛型的目的
  • 如果我使用[String: Encodable],它会在运行时崩溃,说 Encodable 不符合自身,这是可以理解的,因为它需要一个具体的类型

为了解决这个问题,我想到了创建一个包装器:即具有关联类型的协议具有泛型类型值的结构:

但是问题仍然存在,在声明上述字典的类型时,我仍然必须提供具体类型..

“X”应该在这里,或者,实现这一目标的正确方法是什么?我错过了什么?

0 投票
1 回答
47 浏览

javascript - PHP JSON_ENCODE 进程被 ESCAPE 键中止

我的网页使用 bootstrap 和 jquery,在相当长的页面加载过程中,它使用 JSON_ENCODE 读取一些 PHP 会话变量,按下 ESCAPE 键似乎会停止进程,中止读取,并导致页面加载失败。

这发生在 Chrome 和 Firefox 中。

什么可能导致这种情况,有什么方法可以防止这种情况发生吗?

谢谢你。

编辑 *(添加了ignore_user_abort但 ESCAPE 仍然中止):

0 投票
2 回答
11444 浏览

swift - 如何在 Swift 4 中使用 JSONEncoder 对字典进行编码

我想用 JSONEncoder 将 Dictionary 编码为 json。它看起来像一个请求,接收一个字典作为参数并将其编码为 json 作为 http 正文。代码如下所示:

但是这段代码出现错误

致命错误:Dictionary<String, Encodable> 不符合 Encodable,因为 Encodable 不符合自身。您必须使用具体类型进行编码或解码。

我怎样才能使它可编码?

0 投票
0 回答
23 浏览

php - 解码 json 数据时没有发生任何事情

我试图解码以下 json 数据,注意,数据在每个键前面
都有一个奇怪的属性“\” 。

PHP

“GOT_DATA”文件的输出是,

DATA.txt 文件的输出是,

这些值是不是开始存储到变量中?我到底在做什么错?
有谁知道为什么recvied json前面有一个'\'?

更新

在更改了 JSON 的源之后,我设法像 (RAW.txt) 一样返回它,

现在是 DATA.txt 文件的输出,

它只是说'阵列'为什么?

0 投票
2 回答
3083 浏览

swift - JSONEncoder 的 dateEncodingStrategy 不起作用

我正在尝试使用 Swift 4 的 Encodable+JSONEncoder 将结构序列化为字符串。该对象可以保存异构值,如 String、Array、Date、Int 等。

除日期外,使用的方法工作正常。JSONEncoder 的dateEncodingStrategy属性没有任何作用。

这是重现 Playground 中行为的片段:

输出:

对于 bar3 对象:我期待类似的东西"{"key":"bar3","value":"Thurs, 3 Jan 1991"}\n",但它以默认的 .deferToDate 策略格式返回日期。

##编辑1##

所以我在 XCode 9 中运行了相同的代码,它给出了预期的输出,即正确地将日期格式化为字符串。我认为 9.2 对 Swift 4 进行了小幅升级,这打破了这个特性。不知道下一步该怎么做。

##编辑2##

作为临时补救措施,在使用闭包更改为@Hamish 的方法之前,我使用了以下代码段。

0 投票
1 回答
219 浏览

swift - 使用 jSONEncoder 的自定义结构

想要使用 JSONEncoder+Encodable 将对象编码为自定义结构。

默认的编码方法foo给出:

输出:

在自定义输出中,我想使用 property 的值name作为键,而 rest 的值作为提到的键的值。这同样适用于嵌套对象。所以我希望输出是:

问题是 Encodable/JSONEncoder 是否支持这一点。现在我只处理第一个输出字典并通过迭代键来重构它。

0 投票
0 回答
40 浏览

php - 无法对数组进行 JSON 编码

尝试 json_encode() 数组时,未编码我的数组的数组是:

它打印:

和json编码:

它打印:

我做错了什么?

这是我的完整代码: