constchar *str= (constchar *) je->value_begin; char *str_end= (char *) je->value_end; // If JSON quotes are present at start and end, ignore them. if (str[0] == '"' && str_end != str && str_end[-1]=='"')
{
str++;
str_end--;
} int conv_err;
value= my_strtod(str, &str_end, &conv_err); if (conv_err)
{
err_buf->append(read_elem_key, strlen(read_elem_key));
err_buf->append(STRING_WITH_LEN(" member must be a floating point value")); returntrue;
} returnfalse;
}
if (conv_err)
{
err_buf->append(read_elem_key, strlen(read_elem_key));
err_buf->append(STRING_WITH_LEN(" member must be a numeric value")); returntrue;
} elseif (value > LIMIT_VAL)
{
err_buf->append(read_elem_key, strlen(read_elem_key));
err_buf->append(STRING_WITH_LEN(" is out of range of "));
err_buf->append(limit_val_type, strlen(limit_val_type)); returntrue;
} returnfalse;
}
@return 0OK 1AnErroroccured
*/ int json_read_object(json_engine_t *je, Read_named_member *members,
String *err_buf)
{ int rc; while (!(rc= json_scan_next(je)) && je->state != JST_OBJ_END)
{
Json_saved_parser_state save1(je); for (Read_named_member *memb= members; memb->name; memb++)
{
Json_string js_name(memb->name); if (json_key_matches(je, js_name.get()))
{ if (memb->value.read_value(je, memb->name, err_buf)) return1;
memb->value_assigned= true; break;
}
save1.restore_to(je);
}
}
/* Check if all members got values */ for (Read_named_member *memb= members; memb->name; memb++)
{ if (!memb->is_optional && !memb->value_assigned)
{
err_buf->append(STRING_WITH_LEN("\""));
err_buf->append(memb->name, strlen(memb->name));
err_buf->append(STRING_WITH_LEN("\" element not present")); return1;
}
} return0;
}
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.1 Sekunden
(vorverarbeitet am 2026-10-08)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.