Skip to content

Commit 993f491

Browse files
committed
Merge branch 'master' into Draft_1
2 parents 8ef08e3 + dc98eeb commit 993f491

File tree

5 files changed

+166
-296
lines changed

5 files changed

+166
-296
lines changed

samples/basic/jdata_binary_debug_output.txt

Lines changed: 40 additions & 93 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,7 @@ data2json =
2525

2626
ans =
2727

28-
{UemptyZ}
29-
30-
31-
json2data =
32-
33-
empty: []
28+
{U<5>emptyZ}
3429

3530

3631
%=================================================
@@ -46,12 +41,7 @@ data2json =
4641

4742
ans =
4843

49-
{UemptystrSU }
50-
51-
52-
json2data =
53-
54-
emptystr: [1x0 char]
44+
{U<8>emptystrSU<0>}
5545

5646

5747
%=================================================
@@ -99,12 +89,7 @@ EG
9989

10090
ans =
10191

102-
[SUACSUEG]
103-
104-
105-
json2data =
106-
107-
'AC' 'EG'
92+
[SU<2>ACSU<2>EG]
10893

10994

11095
%=================================================
@@ -120,15 +105,10 @@ one"two
120105

121106
ans =
122107

123-
{UstrSUAB CD
108+
{U<3>strSU<13>AB CD
124109
one"two}
125110

126111

127-
json2data =
128-
129-
str: 'AB CD...'
130-
131-
132112
%=================================================
133113
% a mix-typed cell
134114
%=================================================
@@ -161,7 +141,7 @@ ans =
161141

162142
ans =
163143

164-
{U _ArrayType_SUdoubleU _ArraySize_[$U#U<3><2><4><6>U _ArrayData_[$i#U<48><1><9><17><25><33><41><3><11><19><27><35><43><5><13><21><29><37><45><7><15><23><31><39><47><2><10><18><26><34><42><4><12><20><28><36><44><6><14><22><30><38><46><8><16><24><32><40><48>}
144+
{U<11>_ArrayType_SU<6>doubleU<11>_ArraySize_[$U#U<3><2><4><6>U<11>_ArrayData_[$i#U<48><1><9><17><25><33><41><3><11><19><27><35><43><5><13><21><29><37><45><7><15><23><31><39><47><2><10><18><26><34><42><4><12><20><28><36><44><6><14><22><30><38><46><8><16><24><32><40><48>}
165145

166146

167147
%=================================================
@@ -171,27 +151,7 @@ ans =
171151

172152
ans =
173153

174-
{U _ArrayType_SUdoubleU _ArraySize_[$U#U<4><2><4><3><2>U _ArrayData_[$i#U<48><1><25><9><33><17><41><3><27><11><35><19><43><5><29><13><37><21><45><7><31><15><39><23><47><2><26><10><34><18><42><4><28><12><36><20><44><6><30><14><38><22><46><8><32><16><40><24><48>}
175-
176-
177-
%=================================================
178-
% a 3-D array in nested array form (JSONLab 1.9)
179-
%=================================================
180-
181-
182-
ans =
183-
184-
[[[i<1>i<2>][i<3>i<4>][i<5>i<6>][i<7>i<8>]][[i<9>i<10>][i<11>i<12>][i<13>i<14>][i<15>i<16>]][[i<17>i<18>][i<19>i<20>][i<21>i<22>][i<23>i<24>]][[i<25>i<26>][i<27>i<28>][i<29>i<30>][i<31>i<32>]][[i<33>i<34>][i<35>i<36>][i<37>i<38>][i<39>i<40>]][[i<41>i<42>][i<43>i<44>][i<45>i<46>][i<47>i<48>]]]
185-
186-
187-
%=================================================
188-
% a 3-D array in annotated array form (JSONLab 1.9 or earlier)
189-
%=================================================
190-
191-
192-
ans =
193-
194-
{U _ArrayType_SUdoubleU _ArraySize_[$U#U<3><2><4><6>U _ArrayData_[$i#U<48><1><2><3><4><5><6><7><8><9><10><11><12><13><14><15><16><17><18><19><20><21><22><23><24><25><26><27><28><29><30><31><32><33><34><35><36><37><38><39><40><41><42><43><44><45><46><47><48>}
154+
{U<11>_ArrayType_SU<6>doubleU<11>_ArraySize_[$U#U<4><2><4><3><2>U<11>_ArrayData_[$i#U<48><1><25><9><33><17><41><3><27><11><35><19><43><5><29><13><37><21><45><7><31><15><39><23><47><2><26><10><34><18><42><4><28><12><36><20><44><6><30><14><38><22><46><8><32><16><40><24><48>}
195155

196156

197157
%=================================================
@@ -206,7 +166,7 @@ data2json =
206166

207167
ans =
208168

209-
{U _ArrayType_SUdoubleU _ArraySize_[$U#U<2><1><1>U_ArrayIsComplex_TU _ArrayData_[$i#[$U#U<2><2><1><1><2>}
169+
{U<11>_ArrayType_SU<6>doubleU<11>_ArraySize_[$U#U<2><1><1>U<16>_ArrayIsComplex_TU<11>_ArrayData_[$i#[$U#U<2><2><1><1><2>}
210170

211171

212172
%=================================================
@@ -226,7 +186,7 @@ data2json =
226186

227187
ans =
228188

229-
{U _ArrayType_SUdoubleU _ArraySize_[$U#U<2><6><3>U_ArrayIsComplex_TU _ArrayData_[$i#[$U#U<2><2><18><35><26><1><19><6><24><3><21><32><23><7><25><31><22><9><27><2><20><8><17><28><10><33><15><30><12><5><14><34><16><4><13><36><18><29><11>}
189+
{U<11>_ArrayType_SU<6>doubleU<11>_ArraySize_[$U#U<2><6><3>U<16>_ArrayIsComplex_TU<11>_ArrayData_[$i#[$U#U<2><2><18><35><26><1><19><6><24><3><21><32><23><7><25><31><22><9><27><2><20><8><17><28><10><33><15><30><12><5><14><34><16><4><13><36><18><29><11>}
230190

231191

232192
%=================================================
@@ -241,7 +201,7 @@ data2json =
241201

242202
ans =
243203

244-
{Uspecials[$D#U<3><NaN><Inf><-Inf>}
204+
{U<8>specials[$D#U<3><NaN><Inf><-Inf>}
245205

246206

247207
%=================================================
@@ -264,7 +224,7 @@ data2json =
264224

265225
ans =
266226

267-
{Usparse{U _ArrayType_SUdoubleU _ArraySize_[$U#U<2><10><10>U_ArrayIsSparse_TU _ArrayData_[[$i#U<9><1><9><3><10><10><7><2><6><10>[$i#U<9><2><2><5><5><8><9><10><10><10>[$D#U<9><0.655741><0.75774><0.849129><0.743132><0.392227><0.678735><0.0357117><0.933993><0.655478>]}}
227+
{U<6>sparse{U<11>_ArrayType_SU<6>doubleU<11>_ArraySize_[$U#U<2><10><10>U<15>_ArrayIsSparse_TU<11>_ArrayData_[[$i#U<9><1><9><3><10><10><7><2><6><10>[$i#U<9><2><2><5><5><8><9><10><10><10>[$D#U<9><0.655741><0.75774><0.849129><0.743132><0.392227><0.678735><0.0357117><0.933993><0.655478>]}}
268228

269229

270230
%=================================================
@@ -287,7 +247,7 @@ data2json =
287247

288248
ans =
289249

290-
{Ucomplex_sparse{U _ArrayType_SUdoubleU _ArraySize_[$U#U<2><10><10>U_ArrayIsComplex_TU_ArrayIsSparse_TU _ArrayData_[[$i#U<9><1><9><3><10><10><7><2><6><10>[$i#U<9><2><2><5><5><8><9><10><10><10>[$D#U<9><0.655741><0.75774><0.849129><0.743132><0.392227><0.678735><0.0357117><0.933993><0.655478>[$D#U<9><-0.655741><-0.75774><-0.849129><-0.743132><-0.392227><-0.678735><-0.0357117><-0.933993><-0.655478>]}}
250+
{U<14>complex_sparse{U<11>_ArrayType_SU<6>doubleU<11>_ArraySize_[$U#U<2><10><10>U<16>_ArrayIsComplex_TU<15>_ArrayIsSparse_TU<11>_ArrayData_[[$i#U<9><1><9><3><10><10><7><2><6><10>[$i#U<9><2><2><5><5><8><9><10><10><10>[$D#U<9><0.655741><0.75774><0.849129><0.743132><0.392227><0.678735><0.0357117><0.933993><0.655478>[$D#U<9><-0.655741><-0.75774><-0.849129><-0.743132><-0.392227><-0.678735><-0.0357117><-0.933993><-0.655478>]}}
291251

292252

293253
%=================================================
@@ -297,7 +257,7 @@ ans =
297257

298258
ans =
299259

300-
{Uall_zero_sparse{U _ArrayType_SUdoubleU _ArraySize_[$U#U<2><2><3>U_ArrayIsSparse_TU _ArrayData_[ZZZ]}}
260+
{U<15>all_zero_sparse{U<11>_ArrayType_SU<6>doubleU<11>_ArraySize_[$U#U<2><2><3>U<15>_ArrayIsSparse_TU<11>_ArrayData_[ZZZ]}}
301261

302262

303263
%=================================================
@@ -307,12 +267,7 @@ ans =
307267

308268
ans =
309269

310-
{U empty_sparseZ}
311-
312-
313-
json2data =
314-
315-
empty_sparse: []
270+
{U<12>empty_sparseZ}
316271

317272

318273
%=================================================
@@ -322,12 +277,7 @@ json2data =
322277

323278
ans =
324279

325-
{Uempty_0by0_realZ}
326-
327-
328-
json2data =
329-
330-
empty_0by0_real: []
280+
{U<15>empty_0by0_realZ}
331281

332282

333283
%=================================================
@@ -337,12 +287,7 @@ json2data =
337287

338288
ans =
339289

340-
{Uempty_0by3_realZ}
341-
342-
343-
json2data =
344-
345-
empty_0by3_real: []
290+
{U<15>empty_0by3_realZ}
346291

347292

348293
%=================================================
@@ -352,7 +297,7 @@ json2data =
352297

353298
ans =
354299

355-
{Usparse_column_vector{U _ArrayType_SUdoubleU _ArraySize_[$U#U<2><5><1>U_ArrayIsSparse_TU _ArrayData_[[$i#U<3><2><4><5>[$i#U<3><3><1><4>]}}
300+
{U<20>sparse_column_vector{U<11>_ArrayType_SU<6>doubleU<11>_ArraySize_[$U#U<2><5><1>U<15>_ArrayIsSparse_TU<11>_ArrayData_[[$i#U<3><2><4><5>[$i#U<3><3><1><4>]}}
356301

357302

358303
%=================================================
@@ -362,7 +307,7 @@ ans =
362307

363308
ans =
364309

365-
{Ucomplex_sparse_column_vector{U _ArrayType_SUdoubleU _ArraySize_[$U#U<2><5><1>U_ArrayIsComplex_TU_ArrayIsSparse_TU _ArrayData_[[$i#U<3><2><4><5>[$i#U<3><3><1><4>[$i#U<3><-3><-1><-4>]}}
310+
{U<28>complex_sparse_column_vector{U<11>_ArrayType_SU<6>doubleU<11>_ArraySize_[$U#U<2><5><1>U<16>_ArrayIsComplex_TU<15>_ArrayIsSparse_TU<11>_ArrayData_[[$i#U<3><2><4><5>[$i#U<3><3><1><4>[$i#U<3><-3><-1><-4>]}}
366311

367312

368313
%=================================================
@@ -372,7 +317,7 @@ ans =
372317

373318
ans =
374319

375-
{Usparse_row_vector{U _ArrayType_SUdoubleU _ArraySize_[$U#U<2><1><5>U_ArrayIsSparse_TU _ArrayData_[[$i#U<3><2><4><5>[$i#U<3><3><1><4>]}}
320+
{U<17>sparse_row_vector{U<11>_ArrayType_SU<6>doubleU<11>_ArraySize_[$U#U<2><1><5>U<15>_ArrayIsSparse_TU<11>_ArrayData_[[$i#U<3><2><4><5>[$i#U<3><3><1><4>]}}
376321

377322

378323
%=================================================
@@ -382,7 +327,7 @@ ans =
382327

383328
ans =
384329

385-
{Ucomplex_sparse_row_vector{U _ArrayType_SUdoubleU _ArraySize_[$U#U<2><1><5>U_ArrayIsComplex_TU_ArrayIsSparse_TU _ArrayData_[[$i#U<3><2><4><5>[$i#U<3><3><1><4>[$i#U<3><-3><-1><-4>]}}
330+
{U<25>complex_sparse_row_vector{U<11>_ArrayType_SU<6>doubleU<11>_ArraySize_[$U#U<2><1><5>U<16>_ArrayIsComplex_TU<15>_ArrayIsSparse_TU<11>_ArrayData_[[$i#U<3><2><4><5>[$i#U<3><3><1><4>[$i#U<3><-3><-1><-4>]}}
386331

387332

388333
%=================================================
@@ -401,7 +346,7 @@ data2json =
401346

402347
ans =
403348

404-
{Uastruct{UnameSUThink DifferentUyearI<1997>Umagic[$i#[$U#U<2><3><3><8><3><4><1><5><9><6><7><2>Umisfits[$D#U<2><Inf><NaN>Uembedded{UleftTUrightF}}}
349+
{U<7>astruct{U<4>nameSU<15>Think DifferentU<4>yearI<1997>U<5>magic[$i#[$U#U<2><3><3><8><3><4><1><5><9><6><7><2>U<7>misfits[$D#U<2><Inf><NaN>U<8>embedded{U<4>leftTU<5>rightF}}}
405350

406351

407352
%=================================================
@@ -411,7 +356,7 @@ ans =
411356

412357
ans =
413358

414-
{USupreme Commander[{UnameSU Nexus PrimeUranki<9>}{UnameSUSentinel PrimeUranki<9>}{UnameSUOptimus PrimeUranki<9>}]}
359+
{U<17>Supreme Commander[{U<4>nameSU<11>Nexus PrimeU<4>ranki<9>}{U<4>nameSU<14>Sentinel PrimeU<4>ranki<9>}{U<4>nameSU<13>Optimus PrimeU<4>ranki<9>}]}
415360

416361

417362
%=================================================
@@ -428,20 +373,17 @@ data2json =
428373

429374
ans =
430375

431-
{Udebian[[{UbuzzD<1.1>UrexD<1.2>UboD<1.3>Uhammi<2>UslinkD<2.1>UpotatoD<2.2>Uwoodyi<3>UsargeD<3.1>Uetchi<4>Ulennyi<5>Usqueezei<6>Uwheezyi<7>}{UUbuntu[SUKubuntuSUXubuntuSULubuntu]}[$D#U<4><10.04><10.1><11.04><11.1>]]}
376+
{U<6>debian[[{U<4>buzzD<1.1>U<3>rexD<1.2>U<2>boD<1.3>U<4>hammi<2>U<5>slinkD<2.1>U<6>potatoD<2.2>U<5>woodyi<3>U<5>sargeD<3.1>U<4>etchi<4>U<5>lennyi<5>U<7>squeezei<6>U<6>wheezyi<7>}{U<6>Ubuntu[SU<7>KubuntuSU<7>XubuntuSU<7>Lubuntu]}[$D#U<4><10.04><10.1><11.04><11.1>]]}
432377

433378

434379
%=================================================
435380
% invalid field-name handling
436381
%=================================================
437382

438383

439-
json2data =
384+
ans =
440385

441-
ValidName: 1
442-
x0x5F_InvalidName: 2
443-
x0x3A_Field_0x3A_: 3
444-
x0xEFBFBD__0xEFBFBD_: '绝密'
386+
{U<9>ValidNamei<1>U<12>_InvalidNamei<2>U<7>:Field:i<3>U<2>��SU<2>绝密}
445387

446388

447389
%=================================================
@@ -456,12 +398,7 @@ data2json =
456398

457399
ans =
458400

459-
{Uhandle{UfunctionSU@(x)x+1UtypeSU anonymousUfileSU U workspace[{}]Uwithin_file_pathSU__base_function}}
460-
461-
462-
json2data =
463-
464-
handle: [1x1 struct]
401+
{U<6>handle{U<8>functionSU<7>@(x)x+1U<4>typeSU<9>anonymousU<4>fileSU<0>U<9>workspace[{}]U<16>within_file_pathSU<15>__base_function}}
465402

466403

467404
%=================================================
@@ -471,7 +408,7 @@ json2data =
471408

472409
ans =
473410

474-
{U data2json[[[[i<1>][[i<2>][i<3>]]][[i<4>][i<5>]][[i<6>]]][[[i<7>]][[i<8>][i<9>]][[i<10>]]]]}
411+
{U<9>data2json[[[[i<1>][[i<2>][i<3>]]][[i<4>][i<5>]][[i<6>]]][[[i<7>]][[i<8>][i<9>]][[i<10>]]]]}
475412

476413

477414
%=================================================
@@ -489,7 +426,7 @@ data2json =
489426

490427
ans =
491428

492-
{U data2json[[{Uidxi<1>UdataSUstructs}{Uidxi<2>UdataSUstructs}][{Uidxi<3>UdataSUstructs}{Uidxi<4>UdataSUstructs}][{Uidxi<5>UdataSUstructs}{Uidxi<6>UdataSUstructs}]]}
429+
{U<9>data2json[[{U<3>idxi<1>U<4>dataSU<7>structs}{U<3>idxi<2>U<4>dataSU<7>structs}][{U<3>idxi<3>U<4>dataSU<7>structs}{U<3>idxi<4>U<4>dataSU<7>structs}][{U<3>idxi<5>U<4>dataSU<7>structs}{U<3>idxi<6>U<4>dataSU<7>structs}]]}
493430

494431

495432
%=================================================
@@ -504,7 +441,7 @@ data2json =
504441

505442
ans =
506443

507-
[{UFormatSU dd-MMM-uuuuUTimeZoneSU UYearI<2015>UMonthi<4>UDayi<8>UHouri<0>UMinutei<0>USecondi<0>USystemTimeZoneSUAmerica/New_York}{UFormatSU dd-MMM-uuuuUTimeZoneSU UYearI<2015>UMonthi<5>UDayi<9>UHouri<0>UMinutei<0>USecondi<0>USystemTimeZoneSUAmerica/New_York}]
444+
[{U<6>FormatSU<11>dd-MMM-uuuuU<8>TimeZoneSU<0>U<4>YearI<2015>U<5>Monthi<4>U<3>Dayi<8>U<4>Houri<0>U<6>Minutei<0>U<6>Secondi<0>U<14>SystemTimeZoneSU<16>America/New_York}{U<6>FormatSU<11>dd-MMM-uuuuU<8>TimeZoneSU<0>U<4>YearI<2015>U<5>Monthi<5>U<3>Dayi<9>U<4>Houri<0>U<6>Minutei<0>U<6>Secondi<0>U<14>SystemTimeZoneSU<16>America/New_York}]
508445

509446

510447
%=================================================
@@ -523,7 +460,7 @@ data2json =
523460

524461
ans =
525462

526-
{UAndyi<21>UOmi<22>UWilliami<21>}
463+
{U<4>Andyi<21>U<2>Omi<22>U<7>Williami<21>}
527464

528465

529466
%=================================================
@@ -543,5 +480,15 @@ data2json =
543480

544481
ans =
545482

546-
{Utable[{UNames[SUAndy]UAgei<21>}{UNames[SUWilliam]UAgei<21>}{UNames[SUOm]UAgei<22>}]}
483+
{U<5>table[{U<5>Names[SU<4>Andy]U<3>Agei<21>}{U<5>Names[SU<7>William]U<3>Agei<21>}{U<5>Names[SU<2>Om]U<3>Agei<22>}]}
484+
485+
486+
%=================================================
487+
% a 2-D array in compressed array format
488+
%=================================================
489+
490+
491+
ans =
492+
493+
{U<11>_ArrayType_SU<6>doubleU<11>_ArraySize_[$U#U<2><20><10>U<22>_ArrayCompressionSize_[$U#U<2><1><200>U<24>_ArrayCompressionMethod_SU<4>zlibU<21>_ArrayCompressedData_[$U#U<32><120><156><99><96><0><129><15><246><12><52><1><163><230><142><154><59><106><238><40><24><5><131><11><80><47><93><3><0><193><206><13><6>}
547494

samples/basic/jdata_binary_matlab_octave_demo.m

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66
error('you must install JSONLab 2.0 from https://github.com/fangq/jsonlab')
77
end
88

9-
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9+
%===================================================================
1010
% Binary JData encoding and decoding using saveubjson and loadubjson
11-
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11+
%===================================================================
1212

1313
rngstate = rand ('state');
1414
randseed=hex2dec('623F9A9E');
@@ -111,20 +111,6 @@
111111
warning('conversion does not preserve original data');
112112
end
113113

114-
fprintf(1,'\n%%=================================================\n')
115-
fprintf(1,'%% a 3-D array in nested array form (JSONLab 1.9)\n')
116-
fprintf(1,'%%=================================================\n\n')
117-
118-
data2json=reshape(1:(2*4*6),[2,4,6]);
119-
saveubjson('',data2json,'NestArray',1,'FormatVersion',1.8)
120-
121-
fprintf(1,'\n%%=================================================\n')
122-
fprintf(1,'%% a 3-D array in annotated array form (JSONLab 1.9 or earlier)\n')
123-
fprintf(1,'%%=================================================\n\n')
124-
125-
data2json=reshape(1:(2*4*6),[2,4,6]);
126-
saveubjson('',data2json,'NestArray',0,'FormatVersion',1.8)
127-
128114
fprintf(1,'\n%%=================================================\n')
129115
fprintf(1,'%% a complex number\n')
130116
fprintf(1,'%%=================================================\n\n')
@@ -328,5 +314,21 @@
328314
json2data=loadubjson(ans)
329315
end
330316

317+
try
318+
val=zlibencode('test');
319+
fprintf(1,'\n%%=================================================\n')
320+
fprintf(1,'%% a 2-D array in compressed array format\n')
321+
fprintf(1,'%%=================================================\n\n')
322+
323+
data2json=eye(10);
324+
data2json(20,1)=1;
325+
saveubjson('',data2json,'Compression','zlib','CompressionSize',0) % nestarray for 4-D or above is not working
326+
json2data=loadubjson(ans)
327+
if(any(json2data(:)~=data2json(:)) || any(size(json2data)~=size(data2json)))
328+
warning('conversion does not preserve original data');
329+
end
330+
catch
331+
end
332+
331333
rand ('state',rngstate);
332334

0 commit comments

Comments
 (0)