Tôi muốn đọc từ tệp json với Matlab và lưu trữ mọi thứ trong "dữ liệu" làm đối tượng. Sau khi nhập khẩu, tôi cần phải lặp qua tất cả và trích xuất các giá trị cụ thể, nếu nó có sẵn trong đối tượng.Đọc các đối tượng JSON với Matlab
JSON (nguồn):
{
"eid": 44000,
"dpm_id": {
"dpm": "fm",
"pwr": "main"
},
"fpga_id": 3189637128,
"fpga_ver": 3104379702,
"boot_id": 0,
"pbs_ver": "PBS 2012-05-07 16:41"
}
{
"sid": 1,
"hk1": {
"bela_mode": "pbs_mode",
"pbs_version": "version 1.3",
"scet": "2038-01-19T03:14:08",
"ref_time": "0:00:00",
"tc_received": 2,
"tc_exec": 2,
"tc_err_ack": 0,
"tc_err_exec": 1,
"tm_total": 1,
"tm_sent": 1,
"tm_dropped": 0,
....
Matlab (nhập khẩu, according to this website, resp. Class):
fname = 'FileName.json';
fid = fopen(fname);
raw = fread(fid,inf);
str = char(raw');
fclose(fid);
data = JSON.parse(str)
Vấn đề/Câu hỏi:
Như bạn thấy, chỉ Matlab đọc nội dung của dấu ngoặc/trường. Làm thế nào tôi có thể nhập TẤT CẢ các dấu ngoặc/lĩnh vực, ngay cả khi tôi không biết có bao nhiêu?
data =
eid: 44000
dpm_id: [1x1 struct]
fpga_id: 3.1896e+09
fpga_ver: 3.1044e+09
boot_id: 0
pbs_ver: 'PBS 2012-05-07 16:41'
Cảm ơn bạn!
Hãy xem ở đây: http://iso2mesh.sourceforge.net/cgi-bin/index.cgi?jsonlab Nguồn ở đây: https://github.com/fangq/jsonlab – 0xMB
Một số khả năng để phân tích json: http : //undocumentedmatlab.com/blog/json-matlab-integration – Daniel