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

json - Delphi Superobject,json的通用列表

我有一个带有一些 TObjectList<>-fields 的对象,我尝试在SuperObject的帮助下将其编码为 JSON 。

在 SuperObjects 代码的深处,有一个 ToClass 过程,迭代字段并将它们添加到 json 结果中。

在此循环中,检查 TRttiFields FieldType。如果为 nil,则跳过该对象。

我的通用列表字段的 FieldType 为 nil。为什么?

如何让 SuperObject 序列化我的对象列表?

0 投票
0 回答
3602 浏览

json - JUST SHARE - 使用 delphi SuperObject 将 MySQL 数据集转换为 Json 格式

只是分享我使用Delphi SuperObject使用Json的经验

这个想法是如何轻松地将我的查询结果转换为 json 格式。

我使用字符串来表示所有数据格式(包括 BLOB、DATE、DATETIME)。将来可以轻松地将 json 文件导入数据库。

我不是从头开始编写代码,我只是做了一些适合自己需要的修改

这是代码:

0 投票
1 回答
786 浏览

json - 使用 SuperObect 更改 Json

我正在使用 SuperObject 与 Json/Delphi 一起工作, 我创造。问题是:“smtp”有孩子,例如 smtp.address,我必须创建 smtp 及其所有孩子,但我的功能不起作用。

我的代码:

谁能帮我?

我正在使用带有 SuperObject 单元的 Delphi 2007

0 投票
2 回答
3165 浏览

delphi - 使用 indy HTTP 客户端和 Superobject DELPHI http 400 错误代码与 rpc 服务通信

好的,我难倒了下面的代码给了我一个 http 400 错误,告诉我提交的数据有问题,但我不知道是什么!:(

客户端设置为对 URL 进行编码(我尝试了真/假);

也许我很累,谁知道,但这太离谱了:\

RPC 客户端文档 https://en.bitcoin.it/wiki/API_reference_%28JSON-RPC%29

用途:

超级对象链接:http ://www.progdigy.com/?page_id=6

0 投票
1 回答
2002 浏览

delphi - Delphi中如何使用SuperObject调用使用Object作为参数的方法?

我们可以使用 SuperObject 库通过其名称调用某个对象的方法,并使用 SOInvoker 方法将其参数作为 json 字符串提供,如this answer

我想知道如何将创建的对象作为参数发送。我试着发送它

但在 MyMethod 内部 LObjectList 引用丢失了。

我究竟做错了什么?

超级对象库可以在这里下载

0 投票
2 回答
758 浏览

delphi - 为什么我的代码没有编译,而是得到 E2506 接口部分声明的参数化类型的方法不能使用本地符号

我正在使用德尔福 XE。

以下单元无法编译并出现此错误:

这是为什么?有解决方法吗?

0 投票
2 回答
1508 浏览

json - SuperObject 序列化私有变量而不是属性

我有以下代码可以序列化一个动态的类数组。出于某种原因,SuperObject 序列化私有变量而不是类属性名称。谁能建议如何在 SuperObject 中解决此问题?

上面的代码生成以下 JSON:

我所追求的是以下 JSON:

0 投票
2 回答
1924 浏览

json - SuperObject - 从带有“.”的字段名中解析数据 文字

我最近在解析 JSON 时碰壁了。你看,在使用 CloudFlare 客户端接口 API 时,我想查找特定 IP 的“威胁等级”。问题是由于 API 的设计,格式是这样的;

xxx.xxx.xxx.xxx表示我需要从中检索数据的字段名称。立即,您可能会看到我面临的问题;解析字符串中的点字符被假定为当前路径中的子级别。

<value>代表IP的实际评级。但是,从它返回的格式和数据类型会有所不同。在不构成威胁或没有威胁等级的 IP 上,它false以布尔值形式返回。在搜索引擎爬虫上,它以字符串的形式返回"SE:<var>"(其中<var>是数值)。对于已知威胁,它会返回"BAD:<var>"(其中<var>是一个数值)。因此,我不能依赖返回的已知数据类型。

然而,主要问题是尝试从该字段读取值显然会由于字段名称中的点而失败。

0 投票
1 回答
3252 浏览

json - Delphi:超对象序列化自定义转换器/逆变器

我想序列化对象和记录以发送它们并在远程端点上恢复。本地和远程端都有共享对象声明单元。

我有一个包含不同记录的字段作为 JSON 对象的记录:

情况1

我需要在 JSON 对象中为 Data 字段写一个类型名称(TRttiType.QualifiedName),以便在另一端进行反序列化。

一个示例结构:

用法:

恢复后我得到一个 TPmMessage,但我不知道 Data JSON 对象中的类型。

案例二

情况 1 我不知道 Data JSON 对象的类型。所以我添加了带有 QualifiedName 作为值的DataObjectType字段。

在这种情况下,我为序列化制作了另一种结构:

这个结构用代码正确序列化:

DataObject:ISuperObject也序列化得很好。

一个问题是如何反序列化DataObject

我认为它可以使用

但是方法“AsType”需要显式类型参数。

所以我认为用用设置正确的类型是唯一的方法。

如何更好地使用超级对象进行序列化/反序列化?

你能给我建议一个更好的消息结构而不是这个吗?

0 投票
0 回答
1661 浏览

json - 使用 SuperObject 将 JSON 反序列化为具有接口字段的对象

我在 DXE2 上使用 SuperObject(序列化工作正常)反序列化包含来自 json 的接口字段的对象时遇到问题。考虑以下:

当执行到TSuperRttiContext.FromJson.FromClass检查FTest-field 时,doo-doo 会撞到天花板上的螺旋桨(或安装在桌面上,如果您愿意的话)。此时,Result := FromJson(f.FieldType.Handle, GetFieldDefault(f, obj.AsObject[GetFieldName(f)]), v);被调用,这将我们带入 SuperObject.pas 代码中有趣的部分。为简洁起见,我将在这里复制它。

分配给的值soguidISuperObject,所以很明显两者不匹配(我正在测试ITest,记得吗?)。所以我有点不知道该怎么做。反序列化由一个或多个接口字段组成的任何对象是否违法?

这似乎是一个常见的用例,我很难相信。我可以理解这样一个事实,即知道要选择给定接口的哪种实现可能并非易事。然而,我从序言中的评论中看到,应该支持接口对象 - http://code.google.com/p/superobject/source/browse/trunk/superobject.pas#47

如果有人在那里解决了这个问题,那当然会很棒。谢谢!:)