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

0 投票
1 回答
587 浏览

json - 如何检查 SuperObject 是否有效?

从字符串创建 SuperObject 时,字符串可能不是有效的 JSon。不幸的是,在这种情况下,命令 SO 不会引发异常。我最终得到了一个我认为可以在其中存储数据的对象,但是“存储的”数据无处可去并且丢失了。

例子:

如何检查字符串是否已成功转换为有效且工作的 SuperObject?

0 投票
1 回答
58 浏览

json - 如果键包含点(例如 IP 地址),如何访问 SuperObject 对象?

如果键包含点,则代码无法访问 JSON 对象。

JSON:

帕斯卡超对象代码:

结果,trapInfo == nil但我期望 SuperObject 实例。我试图包装 json 密钥:

或者

它没有帮助。

如果 json 键包含点,我应该如何调用 SuperObject 来访问对象实例?

相关问题如何使用 SuperObject 序列化包含点的 JSON 密钥(例如 IP 地址)?

0 投票
2 回答
439 浏览

delphi - Delphi SuperObject - 是否有一个(递归)搜索函数可以告诉在哪里可以找到一个值?

我正在使用 SuperObject 在 JSON 中创建和操作一个简单的层次结构。

我的目标是将一组对象 {"id":..., "name":..., "parent":...} 转换为层次结构。例子:

我想改变这个

进入这个

(这种结构可以变化,即没有固定的模型。这可能意味着解决方案必须是递归的)。

我认为实现这一目标的方法是:

  • 对于每个要添加的对象,
    • 如果没有父级,则将其添加到输出 json 的顶部;
    • 如果有父级,则在输出 json 中查找父级的位置。
    • 将对象添加到父级下的输出 json 中。

为此,我正在寻找一种检索对象路径的方法,例如

这将返回找到的值的“路径”。

在我的示例中,findpathinObject("parent", "0003.1", newObject) 将返回 'items[2].items[0]'

这是一个好方法吗?有没有什么东西可以在不创建新功能的情况下解决我的问题?

我见过的最接近的是这个 SuperObject - Extract All 但我不知道是否可以更改它以返回它正在查找的路径,或者它最终找到值的路径......

谢谢

0 投票
1 回答
367 浏览

json - 带有 SuperObject 的 JSON:元素是数组还是对象?

我从 API 获取 JSON,它有一个怪癖:通常它返回“标签”元素作为对象 {“x”:“y”},但如果没有标签,它会返回空数组 []。

我用 SuperObject 解析 JSON,并使用以下代码:

它对对象非常有效,但如果它是一个数组,它会因访问冲突错误而崩溃。

同样,如果我尝试类似:

它适用于空数组,但如果它是一个对象则会崩溃。

我不确定元素可能在“标签”中,因此不知道在这种情况下如何使用 Exists()。

有任何想法吗?

0 投票
1 回答
62 浏览

json - 使用 SuperObject 获取键值时缺少 JSON 键如何处理?

在 Delphi 2009 中使用 SuperObject。如何处理访问可能不存在的 JSON 键的字符串值的情况?

例如,对于这个示例代码,JSONgood 有一个键“key2”和一个值,但 JSONbad 没有一个“key2”,因此当我尝试将其转换为字符串时,它的计算结果为 nil 并导致错误。有没有一种简单的方法可以将 nil 转换为字符串值或在我尝试将它作为字符串读取而不读取它之前检测它?

顺便说一句,我确实尝试使用 X-Superobject,因为我知道它可以处理这个问题,但是抱怨它找不到在单元 XSuperJSON 的使用子句中命名的正则表达式或 RTTI,所以我猜它在 Delphi 2009 中不起作用(而且我买不起后来的 Delphi 版本)

编辑 - 添加

似乎这样做了,但这是正确的方法吗?

0 投票
1 回答
166 浏览

json - Delphi, TSuperObject > 从 JSON 到 Object

我在 Delphi XE4,TSuperObject:

ToJSon函数将对象放入 JSON:

我还需要一个完全相反的函数 fromJSon,它将读取 JSON(插入对象的位置)回对象,但我正在摸索......

你能告诉我吗?