MCPcopy Create free account
hub / github.com/Netis/cloud-probe / parse_value

Function parse_value

cpworker/src/cJSON/cJSON.c:1325–1377  ·  view source on GitHub ↗

Parser core - when encountering text, process appropriately. */

Source from the content-addressed store, hash-verified

1323
1324/* Parser core - when encountering text, process appropriately. */
1325static cJSON_bool parse_value(cJSON * const item, parse_buffer * const input_buffer)
1326{
1327 if ((input_buffer == NULL) || (input_buffer->content == NULL))
1328 {
1329 return false; /* no input */
1330 }
1331
1332 /* parse the different types of values */
1333 /* null */
1334 if (can_read(input_buffer, 4) && (strncmp((const char*)buffer_at_offset(input_buffer), "null", 4) == 0))
1335 {
1336 item->type = cJSON_NULL;
1337 input_buffer->offset += 4;
1338 return true;
1339 }
1340 /* false */
1341 if (can_read(input_buffer, 5) && (strncmp((const char*)buffer_at_offset(input_buffer), "false", 5) == 0))
1342 {
1343 item->type = cJSON_False;
1344 input_buffer->offset += 5;
1345 return true;
1346 }
1347 /* true */
1348 if (can_read(input_buffer, 4) && (strncmp((const char*)buffer_at_offset(input_buffer), "true", 4) == 0))
1349 {
1350 item->type = cJSON_True;
1351 item->valueint = 1;
1352 input_buffer->offset += 4;
1353 return true;
1354 }
1355 /* string */
1356 if (can_access_at_index(input_buffer, 0) && (buffer_at_offset(input_buffer)[0] == '\"'))
1357 {
1358 return parse_string(item, input_buffer);
1359 }
1360 /* number */
1361 if (can_access_at_index(input_buffer, 0) && ((buffer_at_offset(input_buffer)[0] == '-') || ((buffer_at_offset(input_buffer)[0] >= '0') && (buffer_at_offset(input_buffer)[0] <= '9'))))
1362 {
1363 return parse_number(item, input_buffer);
1364 }
1365 /* array */
1366 if (can_access_at_index(input_buffer, 0) && (buffer_at_offset(input_buffer)[0] == '['))
1367 {
1368 return parse_array(item, input_buffer);
1369 }
1370 /* object */
1371 if (can_access_at_index(input_buffer, 0) && (buffer_at_offset(input_buffer)[0] == '{'))
1372 {
1373 return parse_object(item, input_buffer);
1374 }
1375
1376 return false;
1377}
1378
1379/* Render a value to text. */
1380static cJSON_bool print_value(const cJSON * const item, printbuffer * const output_buffer)

Callers 3

parse_arrayFunction · 0.85
parse_objectFunction · 0.85

Calls 4

parse_stringFunction · 0.85
parse_numberFunction · 0.85
parse_arrayFunction · 0.85
parse_objectFunction · 0.85

Tested by

no test coverage detected