问题标签 [superobject]
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.
json - 使用超对象或 DBXJSON 创建正确的 JSON 文件时出现问题
我正在使用 Delphi XE2,我有这个 json 结构要创建:
我用超级对象做了几次测试,但还没有得到正确的结果,因为我得到的数组的第一个元素等于第二个。我的困难在于迭代和优化。这是我正在处理的代码:。
json - 如何使用 SuperObject 序列化包含点的 JSON 密钥(例如 IP 地址)?
我正在尝试将 JSON 保存在 IP 是关键的地方。预期的 JSON 结果是:
Delphi SuperObject 代码:
SuperObject 将点解析为 JSON 对象的路径分隔符:
如何使用 SuperObject 正确地将 IP 保存为 JSON 密钥?
json - 如何检查 SuperObject 中是否存在特定元素?
我广泛使用SuperObject
JSON 库。我需要能够检查对象中是否存在特定元素。我可以检查一个元素的值,例如一个不存在的整数返回0
。但是,0
如果它确实存在,它是可能的值之一 - 所以我不能依赖观察0
元素的存在。我检查了ISuperObject
可以执行此操作的 for 方法(例如,我希望有类似的东西ISuperObject.Exists(const S: String): Boolean;
),但没有看到类似的东西。
如何检查 JSON 对象中是否存在特定元素?
json - 使用 SuperObject 从 JSON 文件中提取值
正如标题所示,我正在尝试使用 Delphi 7 和 SuperObject 库从一个非常简单的结构化 JSON 文件中提取一个值,但我还没有找到任何涵盖这个最基本主题的示例,并且希望这里的一些大师可能是能够为我提供一些帮助。
我拥有的是一个简单的 JSON 文件(名为 test.json),它具有以下结构,我想知道的是如何在 delphi 中加载这个文件,然后从提供的信息中提取“姓氏”的值。
我确信这是一项非常简单的任务,但正如我之前所说,我无法找到任何有关如何执行此操作的示例,并希望得到一些帮助。
示例 JSON 文件
arrays - 使用 SuperObject 访问 JSON 数组
我最近从使用 ULKJson 切换到 SuperObject,我一直在查看该软件包附带的示例,并且在大多数情况下都取得了一些进展,但它似乎遇到了一个障碍。更具体地说,我似乎找不到一个示例来显示如何访问数组中的项目,如下例中的示例。
要访问常规项目,我使用以下似乎可以正常工作的代码。
但是,我不确定如何访问Place数组中的项目,并且我确信我只是忽略了一些简单的事情,但是我在演示中找不到任何示例来展示如何访问这些数据并希望其中一位大师这里也许可以提供一些帮助,或者至少给我指一个可以向自己学习的指南。
json - 替代使用 StringReplace 从 JSON 响应中删除不需要的字符
我正在做一个需要我解析 JSON 文件并将结果放入数据库的小项目。我正在使用 SuperOjbect 解析文件并生成结果,但我遇到了一些障碍,可以使用一些帮助。
这是我需要解析的 JSON 文件的示例。实际上,这些文件包含比这更多的信息,但这只是为了给你一个我正在处理的数据类型的例子。
这是我用来解析文件的一部分(在本例中为数组)的代码示例。
这导致一个看起来像这样的字符串:["red", "blue", "green"]
然后我使用 StringReplace 函数删除所有[]"
字符,所以我留下了一个现在看起来像这样的字符串,red, green, blue
这工作正常,但我正在寻找这种方法的替代方法更多的是为这类事情设计的,而不是依赖于 StringReplace 函数,如果我需要解析的 JSON 文件更复杂,这可能会导致无法预料的问题。有任何想法吗 ?
json - 修改 SuperObject 以不同方式格式化/缩进 JSON 字符串?
使用该SuperObject
库时,单个 JSON 对象当前缩进如下:
但是,这种缩进/格式与 JSON 大肆宣传的“用户友好”或“人类可读”不同。我理解计算机语言,这并不重要,但我想像这样格式化它:
例如,当使用JSONLint验证/格式化 JSON 代码时,它会以更简洁的方式进行。
我怎样才能去修改SuperObject
库以不同的格式?库中是否有定义这些格式规则的特定位置?或者我是否必须深入研究许多不同地方的代码才能改变这一点?
json - SuperObject 是否支持 UTF-8
我一直在使用 superobject 来满足我所有的 json 解析需求,今天我遇到了一个我似乎无法解决的问题。我下载了一个 json 文件,其中有一个看起来像这样的条目:"place" : "café"
当我尝试解析文件并在消息框中显示它时,单词café
变成了这样:café
这告诉我存在某种转换失败关于何时使用超级对象解析文件,所以在我在这个库中投入更多时间之前,我想知道它是否支持 UTF-8,如果支持,我将如何启用它。
顺便说一句,我用来解析文件的伪代码如下所示:
转换是否因为我将对象转换为字符串而失败?我也尝试使用AsJson
它来查看这是否会产生任何影响,但它没有,所以我不确定需要什么才能使这些对象按预期显示,并希望得到一些帮助。最后,我检查并验证了正在解析的原始文件确实编码为 UTF-8。
delphi - 如何通过解析 json 数组来创建 TSuperObject 实例?
这是一个有效的json
:
我如何TSuperObject
从中创建一个string
?
json - 为什么 TJson.ObjectToJsonObject/ObjectToJsonString 将记录字段表示为 JSON 数组?
SuperObject 和 TJson.ObjectToJsonObject 表示类的某些部分(即记录字段)的方式不一致。让我们有以下代码片段:
输出是:
Delphi 将记录表示为 JSON 数组的原因是什么?是否有导致这种情况的公共标准或建议?
注意: 对我来说,用 {key: value} 表示法而不是数组来表示记录更自然。不知道值所属的键名可能会在反序列化期间产生奇怪的结果。例如,在反序列化期间,我可以传递一个具有相同布局的新类,其中包含具有不同内存布局的记录。在这种情况下,这些值将被随机分配或可能发生 AV?
更新: 我正在使用 Delphi XE7。我也发现了这个 json.org:
JSON 建立在两种结构之上:
- 名称/值对的集合。在各种语言中,这被实现为对象、记录、结构、字典、哈希表、键控列表或关联数组。
- 值的有序列表。在大多数语言中,这被实现为数组、向量、列表或序列。
所以问题可能更多是关于这是 TJson 单元中的错误吗?