Tôi có một đối tượng JSON, chúng ta hãy đặt tên cho nó jObject trông như thế này:Delphi: Truy cập JSON đối tượng trong một mảng JSON
{
"id": 0,
"data": "[{DAT_INCL: \"08/03/2012 10:07:08\", NUM_ORDE: 1, NUM_ATND: 1, NUM_ACAO: 2, NUM_RESU: 3},
{DAT_INCL: \"08/03/2012 10:07:09\", NUM_ORDE: 2, NUM_ATND: 1, NUM_ACAO: 4, NUM_RESU: 5},
{DAT_INCL: \"08/03/2012 10:07:09\", NUM_ORDE: 3, NUM_ATND: 1, NUM_ACAO: 8, NUM_RESU: NULL}]"
}
Như bạn thấy, nó có chứa hai cặp, một trong số đó là một mảng với ba đối tượng trong trường hợp này (số lượng đối tượng là động) với nhiều "khóa: giá trị" (chúng không thay đổi, luôn luôn là 5 trường giống nhau), mà tôi muốn chèn vào cơ sở dữ liệu SQL, "khóa" cột, "giá trị" là trường. Câu hỏi là, làm cách nào để truy cập từng đối tượng riêng lẻ?
Code-khôn ngoan những gì tôi đã làm là trích xuất các cặp có chứa mảng này bằng cách đặt nó trong jPair
jPair := OriginalObject.Get(1);
và sau đó chiếm được mảng
jArray:= TJSONArray(jPair.JsonValue);
(Ngoài ra, như một phần thưởng, khi Tôi đánh giá jArray.Size, kết quả là 6226004. Cái gì?)
Bạn có mã nào không? –
Tôi đang sử dụng XE2 với DBXJSON và DBXJSONReflect. – bpromas
tôi ban đầu đã có một JSONObject khác nhau, vì vậy về cơ bản mã khôn ngoan những gì tôi đã làm là trích xuất các cặp có chứa mảng này bằng cách đặt nó trong jPair (dtPair: = OriginalObject.Get (1);) và sau đó bị bắt mảng (jArray: = TJSONArray (jPair.JsonValue);) (Tôi có nên đặt mã này trong bài đăng gốc không?) – bpromas