Json 文件内容(Ansing 格式 ):json
{ "blockCount":3, "blocks":[ {"FieldCount":3, "fields":[{"Name":"姓名", "Value":["张三", "张三","张三"]}, {"Name":"地址", "Value":["大庆","大庆","大庆"]}, {"Name":"年龄", "Value":["32", "32","32"]} ] }, {"FieldCount":3, "fields":[{"Name":"单位", "Value":["华拓", "张三","张三"]}, {"Name":"城市", "Value":["大庆","大庆","大庆"]}, {"Name":"工龄", "Value":["12", "12","12"]} ] }, {"FieldCount":1, "fields":[{"Name":"单位", "Value":["华拓", "张三","张三"]}]} ] } procedure TForm1.btn2Click(Sender: TObject); var js, j1, j2: TDocVariantData; str: RawUTF8; t, i: Cardinal; begin t := GetTickCount64; for i := 1 to 10000 do begin js.InitJSONFromFile('c:\DataA.json'); //Caption := j.GetValueByPath(['blockCount']); str := DocVariantData(js.GetValueByPath(['blocks'])).value[1]; // j1.InitJSON(str, JSON_OPTIONS_FAST_STRICTJSON); // str := DocVariantData(j1.GetValueByPath(['fields'])).value[1]; // j2.InitJSON(str, JSON_OPTIONS_FAST_STRICTJSON); // Caption := j2.U['Name'] + DocVariantData(j2.GetValueByPath(['Value'])).value[1]; str := DocVariantData(DocVariantData(js.A['blocks'].Value[1]).A['fields'].Value[1]).A['Value'].Value[1]; end; caption := str; str := inttostr(GetTickCount64-t); Showmessage(str); end;