Merge branch release/2.0.0
JSONPreview 继承自 UIView,并基于 UITextView 实现功能。您可以通过它来格式化您的 JSON 数据,并高亮展示。
JSONPreview
UIView
UITextView
同时 JSONPreview 还提供折叠与展开功能,您可以折叠那些您暂时不关注的节点,并在任意时刻重新展示它。
JSONPreview 的全部功能都使用原生方法编写,这意味着您可以在 Apple 平台获得较好的使用体验。
下面是一个大约25秒的gif(大约2.5M),它展示了使用本库预览 JSON 时的效果。
pod 'JSONPreview'
或者将下面的内容添加到 Package.swift 文件中:
Package.swift
dependencies: [ .package(url: "https://github.com/rakuyoMo/JSONPreview.git", from: "2.0.0") ]
在 1.3.0 版本中,我们删除了斜向滑动的功能。 现在如果JSON一行展示不开,那么它将折行展示,而不是超出屏幕。如果您希望使用该功能,请使用 1.2.3 版本
1.3.0
支持格式化显示 JSON 数据。
支持高亮 JSON 数据,提供多种颜色与字体配置选项。
针对 Array 与 Object 提供折叠与展开功能。
Array
Object
基于 UITextView 实现功能。意味着您可以复制 JSONPreview 中的任意内容。
JSONPreview 提供有限的,不完整的格式检查功能,故该功能不作为主要功能提供。详情可以参考:格式检查
下载项目后,ViewController.swift 文件中包含部分测试代码,运行项目即可查看对应的效果。
ViewController.swift
let previewView = JSONPreview() view.addSubview(previewView)
preview(_:style:)
let json = "{\"key\":\"value\"}" previewView.preview(json)
HighlightStyle
HighlightColor
其中,ConvertibleToColor 是一个用于提供颜色的协议。通过该协议,您可以直接使用 UIColor 对象,或轻松的将诸如 0xffffff、#FF7F20 以及 [0.72, 0.18, 0.13] 转换为 UIColor 对象。
ConvertibleToColor
UIColor
0xffffff
#FF7F20
[0.72, 0.18, 0.13]
let highlightColor = HighlightColor( keyWord: ConvertibleToColor, key: ConvertibleToColor, link: ConvertibleToColor, string: ConvertibleToColor, number: ConvertibleToColor, boolean: ConvertibleToColor, null: ConvertibleToColor, unknownText: ConvertibleToColor, unknownBackground: ConvertibleToColor, jsonBackground: ConvertibleToColor, lineBackground: ConvertibleToColor, lineText: ConvertibleToColor ) let style = HighlightStyle( expandIcon: UIImage?, foldIcon: UIImage?, color: highlightColor, lineFont: UIFont?, jsonFont: UIFont?, lineHeight: CGFloat ) previewView.preview(json, style: style)
对于渲染,JSONPreview 只进行有限的格式检查。
目前已知的会触发 “错误渲染” 的条件,包括:
object
array
number
bool
string
null
true
false
{E/e}
+
-
,
:
除了上述明确提到的条件,其他错误也可能触发“错误渲染”。另外还有可能有一些错误在格式检查的范围之外,这些错误不会触发“错误渲染”。但是可能会导致 json 内容的缺失。
建议您不要过于依赖 JSONPreview 的格式检查功能,尽可能用于预览格式正确的 json。
1.2.0 版本增加了对链接的渲染功能。在渲染的同时,JSONPreview 会进行有限的去转义操作。
不同版本支持的去转义操作如下:
如无特殊说明,以下功能均为累加。
"\/"
"/"
Carthage
感谢 Awhisper 在 JSONPreview 的开发过程中提出的宝贵意见。
JSONPreview 在 MIT 许可下可用。 有关更多信息,请参见 LICENSE 文件。
©Copyright 2023 CCF 开源发展委员会 Powered by Trustie& IntelliDE 京ICP备13000930号
JSONPreview
继承自UIView
,并基于UITextView
实现功能。您可以通过它来格式化您的 JSON 数据,并高亮展示。同时
JSONPreview
还提供折叠与展开功能,您可以折叠那些您暂时不关注的节点,并在任意时刻重新展示它。JSONPreview
的全部功能都使用原生方法编写,这意味着您可以在 Apple 平台获得较好的使用体验。预览
下面是一个大约25秒的gif(大约2.5M),它展示了使用本库预览 JSON 时的效果。
基本要求
安装
CocoaPods
Swift Package Manager
或者将下面的内容添加到
Package.swift
文件中:功能
支持格式化显示 JSON 数据。
支持高亮 JSON 数据,提供多种颜色与字体配置选项。
针对
Array
与Object
提供折叠与展开功能。基于
UITextView
实现功能。意味着您可以复制JSONPreview
中的任意内容。JSONPreview
提供有限的,不完整的格式检查功能,故该功能不作为主要功能提供。详情可以参考:格式检查使用
JSONPreview
对象,并添加到界面上:preview(_:style:)
方法,以默认样式预览数据:HighlightStyle
与HighlightColor
类型进行设置:格式检查
渲染
对于渲染,
JSONPreview
只进行有限的格式检查。目前已知的会触发 “错误渲染” 的条件,包括:
object
、array
、number
、bool
、string
以及null
。number
格式的检查,例如科学计数法以及小数。true
、false
以及null
的拼写检查。{E/e}
的下一个节点必须是+
、-
或数字。array
元素之间没有使用,
进行分隔。object
元素之间没有使用,
进行分隔。object
的 key 后没有:
。object
的 key 后有:
,但是缺失 value。object
的 key 不是字符串。除了上述明确提到的条件,其他错误也可能触发“错误渲染”。另外还有可能有一些错误在格式检查的范围之外,这些错误不会触发“错误渲染”。但是可能会导致 json 内容的缺失。
建议您不要过于依赖
JSONPreview
的格式检查功能,尽可能用于预览格式正确的 json。链接
1.2.0 版本增加了对链接的渲染功能。在渲染的同时,
JSONPreview
会进行有限的去转义操作。不同版本支持的去转义操作如下:
"\/"
替换为"/"
。DFD
TODO
Carthage
。致谢
感谢 Awhisper 在
JSONPreview
的开发过程中提出的宝贵意见。License
JSONPreview
在 MIT 许可下可用。 有关更多信息,请参见 LICENSE 文件。