@@ -704,6 +704,44 @@ isolated function testAnydataAsExpTypeForParseString() returns Error? {
704
704
test : assertEquals (val5 , [[1 ], 2 ]);
705
705
}
706
706
707
+ @test :Config
708
+ isolated function testAnydataArrayAsExpTypeForParseString() returns Error ? {
709
+ string jsonStr1 = string ` [["1"], 2.0]` ;
710
+ anydata [] val1 = check parseString (jsonStr1 );
711
+ test : assertEquals (val1 , [[1 ], 2.0 ]);
712
+
713
+ string jsonStr2 = string ` [["1", 2], 2.0]` ;
714
+ anydata [] val2 = check parseString (jsonStr2 );
715
+ test : assertEquals (val2 , [[1 , 2 ], 2.0 ]);
716
+
717
+ string jsonStr3 = string ` [["1", 2], [2, "3"]]` ;
718
+ anydata [] val3 = check parseString (jsonStr3 );
719
+ test : assertEquals (val3 , [[1 , 2 ], [2 , 3 ]]);
720
+
721
+ string jsonStr4 = string ` {"val" : [[1, 2], "2.0", 3.0, [5, 6]]}` ;
722
+ record {|
723
+ anydata [] val;
724
+ | } val4 = check parseString (jsonStr4 );
725
+ test : assertEquals (val4 , {val : [[1 , 2 ], 2.0 , 3.0 , [5 , 6 ]]});
726
+
727
+ string jsonStr41 = string ` {"val1" : [[1, 2], "2.0", 3.0, [5, 6]], "val2" : [[1, 2], "2.0", 3.0, [5, 6]]}` ;
728
+ record {|
729
+ anydata [] val1;
730
+ anydata [] val2;
731
+ | } val41 = check parseString (jsonStr41 );
732
+ test : assertEquals (val41 , {val1 : [[1 , 2 ], 2.0 , 3.0 , [5 , 6 ]], val2 : [[1 , 2 ], 2.0 , 3.0 , [5 , 6 ]]});
733
+
734
+ string jsonStr5 = string ` {"val" : [["1", 2], [2, "3"]]}` ;
735
+ record {|
736
+ anydata [] val;
737
+ | } val5 = check parseString (jsonStr5 );
738
+ test : assertEquals (val5 , {val : [[1 , 2 ], [2 , 3 ]]});
739
+
740
+ string jsonStr6 = string ` [{"val" : [["1", 2], [2, "3"]]}]` ;
741
+ [record {| anydata [][] val ;| }] val6 = check parseString (jsonStr6 );
742
+ test : assertEquals (val6 , [{val : [[1 , 2 ], [2 , 3 ]]}]);
743
+ }
744
+
707
745
@test :Config
708
746
isolated function testJsonAsExpTypeForParseString() returns Error ? {
709
747
string jsonStr1 = string ` 1` ;
0 commit comments