问题标签 [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 回答
1123 浏览

json - 使用 SuperObject 从 JSON 请求中读取特定值

您好,我在 JSON 格式的 Web API 中得到下一个结果:

现在,我想从项目'ES'中读取值,其中项目'CodISO'='BOL'在Delphi SuperObject中的值,我找不到解决方案,花了一整天的时间尝试它。

我不知道如何像使用 Embarcadero TJSONValue, TJSONObject,那样迭代 SuperObject 元素TJSONArray。我是 SuperObject 的新手:

0 投票
1 回答
859 浏览

android - 在 Delphi xe7 android Target 中使用 SuperObject 时出错

当我通过将目标平台更改为 Android(SDK.22.3.32 位)来调试我的项目时出现以下错误

[DCC 错误] superobject.pas(601): E2154 类型 'TSuperTableString' 需要最终确定 - 不允许在变体记录中

以下代码在 Windows 中没有任何问题,但当我更改为 android 平台时:

**

知道解决方案是什么吗?请帮忙。

谢谢。/库尔

0 投票
1 回答
1347 浏览

json - Delphi JSON 超级对象按字母顺序将多个对象保存到文件中

我正在使用 JSON 超级对象库将对象保存到文件中。当我的代码工作时,它们是用正确的格式编写的。

JsonArray也有类型ISuperObject

但似乎这个库中运行了一些相反的顺序排序功能。不仅对象而且其中的键值对都以相反的字母顺序编写。

我应该怎么做才能让超级对象以正确的顺序写入文件?我已经测试过对象是按正确的循环顺序添加的。该文件必须如下所示。

0 投票
1 回答
571 浏览

delphi - 使用 SuperObject 和 OmniThreadLibrary 从 DLL 获取 JSON 数据的问题

我正在使用 Delphi XE,我的程序和 DLL 有以下代码:


当我尝试运行调试代码时,在调用 dll GetJSON 函数几次后,我收到以下错误:
项目 test_OTL_SO.exe 引发异常类 EAccessViolation,并显示消息‘模块‘my.dll’中地址 005A2F8A 的访问冲突。写入地址 00610754'。
但是,当我使用相同的本地函数 GetJSON_local 时,不会出现此问题。
谁能建议我在这里做错了什么?

编辑:(解决方案)

我为我的 DLL 编写了这段代码:

并更改了 Async_Parse 过程的代码:

0 投票
1 回答
7767 浏览

json - Delphi XE7:如何使用 System.JSON(相对于 SuperObject)更改 JSON 值

我需要加载一个 JSON 文件,更改一个值,然后将其写回磁盘。

使用 SuperObject 很容易,但是如何使用 System.JSON 单元做同样的事情呢?

System.JSON 中似乎没有与“GetValue”方法等效的“SetValue”。

0 投票
2 回答
531 浏览

json - 如何调整 SuperObject 库以使其不区分大小写?

我只是发现JSON 区分大小写的困难方式,这意味着它lWeekRecord['TT_WK_ID']lWeekRecord['tt_wk_id'](lWeekRecord 是一个 ISuperObject)不同。

我在有限的 SuperObject 文档中找不到任何关于区分大小写的信息。

有没有人发现/修复/破解过这个;能告诉我怎么做吗?
我更喜欢接收 JSON 数据的 Web 服务对 JSON 名称大小写不敏感。

编辑

我只需要使用由另一个系统生成的 JSON,它只对我说话。我想对那个系统的开发者宽容一点。他们的 JSON 是序列化的 C 对象,我真的不在乎他们是否调用他们的变量fooFoo。实际上,更糟糕的是:它们的部分对象是从提供给它们的数据库字段名称派生的,这些甚至来自不同的 RDBMS。因此,这是一个涉及多个参与者的依赖链,可能会因为区分大小写而中断一些愚蠢的事情。
如果我可以为那些人避免这种情况,我想这样做。
这条链中没有一个头脑正常的人会同时使用fooFoo在一起(这在大多数 RDMBS 中甚至是不可能的),所以我不必提防这种情况。

0 投票
1 回答
285 浏览

json - Delphi / SuperObject - 访问子节点返回NIL

我有来自服务器的以下 JSON:

我正在使用以下代码来访问这些值:

使用此代码,如果我使用简单的Label1.Caption := orderObj.AsString;,它会告诉我:

从逻辑上讲,内部的值OrderItem可以像这样访问:orderObj['OrderItems.OrderItem'];,但是如果我尝试访问一个“简单”的值,例如OrderId,那是第一个元素,使用orderObj['OrderId'];它会返回,并且...nil的所有节点都会发生同样的情况orderObj

因此,orderObj.AsString无法访问中的值以转换为变量...

有一种方法可以访问OrderItem? OrderItem我的目标是使用以下代码将 的值转换为 ClientDataSet:

谢谢!

0 投票
1 回答
1305 浏览

json - 简单的 JSON 工作:同时提取键和值

我在互联网上阅读了一些 JSON 作品。作为一个菜鸟,希望我在追踪示例方面不如你们中的一些人好,因为我需要知识才能知道要搜索什么来获取知识。第 22 条。;-)

我正在使用超级对象,似乎是最好的方法。

我的问题是,我需要将 JSON 分成键/值对,到目前为止,如果我知道键是什么,我只能获得值。将针对所有可能的命令检查密钥(在我的应用程序中,密钥是 [command]),当命令匹配时,值部分是逗号分隔的参数列表,作为将由任一方启动的命令的参数. 然后服务器/客户端调用命令(过程/函数)并将 [commaText] 作为其参数传递。(可能有 JSON 政治上正确的方式来代替 [commaText],是的,您当然可以对此发表评论,但到目前为止,[commaText] 对我来说是一种简单易行的方式。

更短:我需要从 JSON 对中提取 [Key value] 和 [Value value]。

这是我到目前为止的工作:

如果我已经知道这对的键是什么,这会让我得到这对的价值。

重述:需要从 JSON 数据中提取两个键/值作为单独的字符串(通常/基本上永远,我拥有多个密钥对,它的一个命令/一个传输)

更多背景:我有一个 SQLDatabase/App-Server/Many Clients 实现。(App-Server I/O <-> SQL,计算,然后输出到客户端,客户端接收来自app-server的输入/函数调用,更新它的值,然后用户可以调用App-server上的函数,通过使用客户端调用该函数-使用websockets进行通信。应用程序服务器和客户端都可以调用api中的函数和过程,但这将是客户端服务器或服务器客户端一次一个命令。

而且我想知道创建一个特殊情况的 JSON 解析器是否更容易,因为我的数据总是只有一对,而不是一个大的 JSON 对象......

请,任何建议将不胜感激

PS。Delphi 10.1 柏林,Windows10 x64

0 投票
1 回答
357 浏览

json - 超级对象 - 元素名称中的空格

我使用 Super Object 作为 JSON 解析器。我在使用第三方 API 时遇到了问题。API 返回 JSON,元素名称中带有空格。但是,超级对象不适用于空格。我观察到它将空格视为结束引号的行为,因此忽略了空格之后的任何内容。

我相信关键是这state也是另一个元素的名称。当我尝试读取state abbreviation它时,它会返回值state

我怎样才能解决这个问题?

0 投票
3 回答
3529 浏览

json - 使用 SuperObject Delphi 解析 Json

我是 JSON 新手。我有以下 JSON 数据,但我不知道如何读取transaction对象idamount值。

我可以阅读errorCodeerrorMessage,但我不知道如何访问事务id

这是我到目前为止的代码: