gpt4 book ai didi

json - 将 'pretty printed' JSON 字符串转换为紧凑格式表示的最简单方法是什么?

转载 作者:行者123 更新时间:2023-12-05 07:32:13 30 4
gpt4 key购买 nike

这可能是一个奇怪的问题,因为它特定于 JSON 字符串本身,而不是它们所代表的对象。给定一个“打印精美”的 JSON 字符串(表示任何 JSON 可编码模型),如何将其重新格式化为“紧凑”格式?

我的第一个想法是不要将其视为 JSON,而只是一个字符串,然后使用 RegEx 删除重复空格、删除换行符等,但这不是上下文感知的,因此它有可能影响 JSON 的键和值部分如果您没有正确测试您是否在引号内。

我的下一个想法是尝试从 JSON 构造一个对象,但没有要转换为的类型,我不确定如何在不手动将值解析为“ANY”然后测试它们是否是一个数组,如果是,则递归到它,重复这个过程。然后一旦我有了最终对象,就以紧凑的形式序列化结果。然而,这似乎有些矫枉过正。

有没有更简单的方法来完成这个?如果有帮助,我们会使用 Swift 4。

最佳答案

更新:

正如@Mark A. Donohoe 所指出的,这将删除所有空格。所以尽管它看起来很酷,但这是一个愚蠢的答案。不要上当。


我需要同样的东西,我最终创建了一个字符串扩展:

<s>extension String {
func toCompactJSON() -> String {
self.filter { !$0.isWhitespace && !$0.isNewline }
}
}</s>

在我的例子中,虽然它是出于测试目的,但结果证明它是无用的,因为 Javascript 对象/数组出现的顺序与通过 JSONEncoder 生成的顺序不同。 .

关于json - 将 'pretty printed' JSON 字符串转换为紧凑格式表示的最简单方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51384114/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com