I want to parse this JSON using xSuperObject:
{
"data": {
"user": {
"edge_followed_by": {
"count": 29594,
"page_info": {
"has_next_page": true,
"end_cursor": ""
},
"edges": [{
"node": {
"id": "224289647",
"username": "h9a",
"full_name": "",
"profile_pic_url": "",
"is_verified": false,
"followed_by_viewer": false,
"requested_by_viewer": false
}
}]
}
}
}
}
Here is my code:
var
json : ISuperObject;
item, item2 : IMember;
begin
json := TSuperObject.Create(Memo1.Text);
for item in json['edges'].AsArray do
begin
Memo2.Lines.Add(item.AsObject['node.username'].ToString);
end;
end;
I want to collect all username values from the JSON, but my code raises an AccessViolation.
You are attempting to jump straight to the
edges
array without first stepping through its parent elements. The actual location of the array you wish is atdata.user.edge_followed_by.edges
.It should work more like this...