- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何从通用 JSON 获取所有“id”成员值。 不知道它的结构。因为它非常复杂并且有很多子对象。它必须循环遍历所有子对象。
再次针对那些不断询问示例 JSON 在哪里的人。我的问题是如何从包含此成员的任何通用 JSON 中提取我的案例“id”中的成员值。
最佳答案
如果您不知道从某处收到的 JSON 的结构,请务必注意,JSON“只是”一种复合模式,您可以像任何其他复合结构一样遍历它。以下示例遍历 JSON 文本中的完整结构并打印任何名为“id”的成员的路径。
procedure ParseJSON;
var
JSONText: string;
JSON: ISuperObject;
begin
// Retrieve JSON as a string into JSONText variable any way you like.
JSON := SO(JSONText);
ProcessObject(JSON.AsObject);
end;
procedure ProcessObject(const aAsObject: TSuperTableString; const aPrefix: string = '');
var
Names: ISuperObject;
Name: string;
Items: ISuperObject;
Item: ISuperObject;
idx: Integer;
Value: string;
ArrayItem: ISuperObject;
begin
if Assigned(aAsObject) then
begin
Names := aAsObject.GetNames;
Items := aAsObject.GetValues;
for idx := 0 to Items.AsArray.Length - 1 do
begin
Name := Names.AsArray[idx].AsString;
Item := Items.AsArray[idx];
if Item.DataType = stObject then
Value := '<Object>'
else if Item.DataType = stArray then
Value := '<Array>'
else
Value := Item.AsString;
if SameText(Name, 'id') then
WriteLn(Format('%s: %s', [aPrefix + Name, Value]));
if Item.DataType = stArray then
for ArrayItem in Item do
ProcessObject(ArrayItem.AsObject, aPrefix + Name + '.');
if Item.DataType = stObject then
ProcessObject(Item.AsObject, aPrefix + Name + '.');
end;
end;
end;
关于json - SuperObject - 全部提取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14082886/
一些 JSON 序列化器返回 null对于空字符串数据字段,例如 { "searchtext": null, "moretext": "contains something", "bookdat
如何从通用 JSON 获取所有“id”成员值。 不知道它的结构。因为它非常复杂并且有很多子对象。它必须循环遍历所有子对象。 再次针对那些不断询问示例 JSON 在哪里的人。我的问题是如何从包含此成员的
我正在使用 Delphi XE4 和 SuperObject 1.24 我有以下结构: type TMyArray = Array of Array of Variant; TMyRecord
我正在尝试使用 super 对象在类中调用一个过程,但它不起作用,我在这里做错了什么? 代码示例: program test_rpc; {$IFDEF FPC} {$MODE OBJFPC}{$H
我正在使用 SuperObject 生成 JSON。我正在使用的服务器有一些对数据结果进行排序的规范(这与数据排序相关的事实与我关于排序的实际问题无关)。问题是,服务器希望这些值按照排序方式列出,例如
我最近在解析 JSON 时遇到了困难。您会看到,在使用 CloudFlare 客户端接口(interface) API 时,我想查找特定 IP 的“威胁评级”。问题是,由于 API 的设计,格式是这样
我广泛使用 SuperObject JSON 库。我需要能够检查对象中是否存在特定元素。我可以检查元素的值,例如不存在的整数返回 0。但是,如果 0 确实存在,则它是可能的值之一 - 因此我不能依赖于
我的服务器有以下 JSON: { "userid":"12", "username":"TestChar", "logged":"yes", "status":"Premium
我有以下代码来序列化动态类数组。由于某种原因,SuperObject 序列化的是私有(private)变量而不是类属性名称。任何人都可以建议如何修复 SuperObject 中的此行为吗? class
类型: TData = record str: string; int: Integer; boo: Boolean; flt: Double; end; TDataArray = A
我有一个带有一些 TObjectList<> 字段的对象,我尝试使用帮助表单 SuperObject 将其编码为 JSON . TLogs = TObjectList; TMyObject = cla
我正在使用 SuperObject 创建和操作 JSON 中的简单层次结构。 我的目标是将一组对象 {"id":..., "name":..., "parent":...} 转换为层次结构。示例: 我
我正在尝试使用 Delphi 7 中的 SuperObject 解析该字符串。 procedure TForm1.btn1Click(Sender: TObject); var obj: ISupe
我在我的一个项目中使用这个 super 对象单元作为 rpc 协议(protocol),在一个远程调用过程中(签名有一个 var Result arg)我想知道如何使用那个 arg... 没有文档吗?
我最近从使用 ULKJson 切换到 SuperObject,我一直在查看软件包附带的示例,并在大多数方面取得了一些进展,但似乎我遇到了一个障碍。更具体地说,我似乎找不到一个示例来展示如何访问数组中的
正如标题所示,我正在尝试使用 Delphi 7 和 SuperObject 库从结构非常简单的 JSON 文件中提取值,但我还没有找到涵盖这个最基本主题的任何示例,并希望一些大师能够提供帮助这里也许可
使用 SuperObject 库时,单个 JSON 对象当前缩进如下: { "name": "value", "int_arr": [ 1,2,3], "obj_arr": [ {
我想从这个 json 中获取所有用户。 { "status": "ok", "next_max_id": "AQAmA1l9NAQXa", "sections": [ {
我使用 SuperObject 库来处理 JSON。 我有这个 JSON(Mozilla FireFox、Chrome 书签文件的一部分): "roots": { "bookmark
我正在使用 Delphi 2010 和 superobject 库。 我已经了解如何解析 json 文件,但我不知道如何创建 json? 算法是: 解析 JSON 并加载到 TStringGrid 添
我是一名优秀的程序员,十分优秀!