@@ -181,13 +181,16 @@ static void test_m(void) {
181181
182182static void test_json (void ) {
183183 char buf [100 ];
184- const char * json = "{ \"a\": -42, \"b\": \"hi\", \"c\": true }" ;
185- int b = 0 ;
186- assert (json_get_long (json , ( int ) strlen ( json ) , "$.a" , 0 ) == -42 );
187- assert (json_get_str (json , ( int ) strlen ( json ) , "$.b" , buf , sizeof (buf )) == 2 );
188- assert (strcmp (buf , "hi" ) == 0 );
189- assert (json_get_bool (json , ( int ) strlen ( json ) , "$.c " , & b ) == 1 );
184+ const char * json = "{ \"a\": -42, \"b\": [ \"hi\\t\\u0020\", true, { } ] }" ;
185+ int ofs , n , b = 0 , len = ( int ) strlen ( json ) ;
186+ assert (json_get_long (json , len , "$.a" , 0 ) == -42 );
187+ assert (json_get_str (json , len , "$.b[0] " , buf , sizeof (buf )) == 4 );
188+ assert (strcmp (buf , "hi\t " ) == 0 );
189+ assert (json_get_bool (json , len , "$.b[1] " , & b ) == 1 );
190190 assert (b == 1 );
191+ assert (json_get (json , len , "$.c" , & n ) < 0 );
192+ assert ((ofs = json_get (json , len , "$.b[2]" , & n )) > 0 && n == 3 &&
193+ json [ofs ] == '{' && json [ofs + 2 ] == '}' );
191194}
192195
193196int main (void ) {
0 commit comments