【发布时间】:2023-03-21 11:45:01
【问题描述】:
有人可以帮助我使用 Andreas Hausladen 的 JSONDataObjects 访问嵌套对象内的字符串的正确语法
我有一个从 API 返回的 JSON 字符串,其中包含一个客户数组,后跟一个光标分页对象(元),例如
{
"customers": [
{
"id": "CU000DWEQWMRN4",
"email": "theemail@outlook.com",
"metadata": {
"member_name": "BLOGGS jim",
"membership_id": "4088"
}
},
{
"id": "CU000DVEKR579S",
"email": "anotheremail@outlook.com",
"metadata": {
"membership_id": "5647"
}
}
],
"meta": {
"cursors": {
"before": null,
"after": "ID456"
},
"limit": 50
}
}
我试图在最后的 meta 对象中获取 before 和 after 的值
我的尝试
var Obj: TJsonObject;
AfterID : string;
begin
Obj := TJsonObject.Parse(theJSON) as TJsonObject;
AfterID := Obj['meta']['cursors']['after'] ;
问题 我收到错误消息无法将对象转换为字符串
我也试过了
var
Obj: TJsonObject;
AfterID : string;
begin
obj := Obj['meta'];
Obj := Obj['cursors'];
AfterID := Obj['after'];
问题 我收到错误消息无法将对象转换为字符串
我还尝试了许多其他语法组合,但我不会用所有这些组合来混淆问题!
我很困惑,因为当我使用从另一个具有更简单光标分页结构的 API 重新调整的稍微不同的 JSON 做同样的事情时,我的语法是正确的,例如
{
"items": [
{
"event": "accepted",
"id": "G3wOhh",
"user-variables": {},
"log-level": "info",
"method": "smtp"
},
{
"event": "accepted",
"id": "KLT56",
"user-variables": {},
"log-level": "info",
"method": "smtp"
}
],
"paging": {
"previous": "line 4",
"first": "line 1",
"last": "line 12",
"next": "line 6"
}
}
使用这个 JSON,使用
var
Obj : TJsonObject;
nextID : string;
begin
Obj := TJsonObject.Parse(TheReturnedJSON) as TJDOJsonObject;
nextID := Obj['paging']['next'];
我得到了正确的返回值
【问题讨论】:
标签: json delphi-2009