1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 17:47:36 +00:00

AK: Make JSON parser return ErrorOr<JsonValue> (instead of Optional)

Also add slightly richer parse errors now that we can include a string
literal with returned errors.

This will allow us to use TRY() when working with JSON data.
This commit is contained in:
Andreas Kling 2021-11-15 01:46:51 +01:00
parent 304c03f457
commit 587f9af960
54 changed files with 172 additions and 228 deletions

View file

@ -209,7 +209,7 @@ Result<NonnullRefPtrVector<Sheet>, String> ImportDialog::make_and_run_for(String
auto import_worksheet = [&]() -> Result<NonnullRefPtrVector<Sheet>, String> {
auto json_value_option = JsonParser(file.read_all()).parse();
if (!json_value_option.has_value()) {
if (json_value_option.is_error()) {
StringBuilder sb;
sb.append("Failed to parse ");
sb.append(file.filename());

View file

@ -667,7 +667,7 @@ JsonObject Sheet::gather_documentation() const
JsonParser parser(doc.to_string_without_side_effects());
auto doc_object = parser.parse();
if (doc_object.has_value())
if (!doc_object.is_error())
object.set(it.key.to_display_string(), doc_object.value());
else
dbgln("Sheet::gather_documentation(): Failed to parse the documentation for '{}'!", it.key.to_display_string());