- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想从这个 json 中获取所有用户。
{
"status": "ok",
"next_max_id": "AQAmA1l9NAQXa",
"sections": [
{
"module": null,
"show_view_all": null,
"title": null,
"users": [
{
"pk": 48165888,
"is_verified": false,
"profile_pic_url": "http://scontent-sit4-1.cdninstagram.com/t51.2885-19/s150x150/17332306_1915592632007479a.jpg",
"full_name": "Jason Giovany Castro Morales",
"is_private": false,
"has_anonymous_profile_picture": false,
"username": "jasongiovanycastromorales",
"profile_pic_id": "14699765111792881_48165888"
}
]
}
]
}
现在,我尝试获取所有用户名。
procedure TForm2.Button6Click(Sender: TObject);
var
json : ISuperObject;
node : ISuperObject;
item : IMember;
begin
try
json := TSuperObject.Create(list.Text);
for item in json['sections.users'].AsArray do
begin
node := item.AsObject;
Memo4.Lines.Add(node.S['username']);
end;
finally
end;
end;
第二次尝试..我得到了 AV!
var
json : ISuperObject;
node : ISuperObject;
item, item2 : IMember;
begin
json := SO(list.Text);
for item in json['sections'].AsArray do
begin
for item2 in json['users'].AsArray do
begin
node := item.AsObject;
Memo1.Lines.Add(node.S['username']);
end;
end;
end;
此 JSON 中有 200 个用户名值当我尝试使用 json 代码时,我什么也没得到,有时是 AV,我的问题是,如何正确解析此 json 以获得值 username
?谢谢。
最佳答案
您的示例已损坏,并且您没有指定输入数据的格式,就像我不知道的那样,sections
数组中的所有对象是否都包含 users
数组。不管怎样,这个例子应该适用于你的代码片段。
procedure TForm2.Button6Click(Sender: TObject);
var
json, user, section : ISuperObject;
begin
json := SO(list.Text);
for section in json['sections'] do
begin
if Assigned(section['users']) then
begin
for user in section['users'] do
begin
if user.S['username'] <> '' then
Memo4.Lines.Add(user.S['username']);
end;
end;
end;
end;
编辑:事实上,您使用的不是 SuperObject
,而是 X-SuperObject
,这是不同的。尽管我从未使用过该库,但我只能通过他们网站上的示例找到问题,因为你犯了一些简单的错误,例如使用 item
而不是 item2
或第二个循环中的 json
和 item
。
procedure TForm2.Button6Click(Sender: TObject);
var
json : ISuperObject;
item, item2 : IMember;
begin
json := TSuperObject.Create(list.Text);
for item in json['sections'].AsArray do
begin
for item2 in item.AsObject['users'].AsArray do
Memo1.Lines.Add(item2.AsObject['username'].ToString);
end;
end;
关于json - 如何使用 X-SuperObject 访问 JSON 中的嵌套值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42966006/
一些 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 添
我是一名优秀的程序员,十分优秀!