1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-14 09:14:58 +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

@ -156,10 +156,9 @@ int main(int argc, char** argv)
}
auto file_contents = file->read_all();
auto json = JsonValue::from_string(file_contents);
VERIFY(json.has_value());
auto json = JsonValue::from_string(file_contents).release_value_but_fixme_should_propagate_errors();
Vector<JsonValue> sorted_regions = json.value().as_array().values();
Vector<JsonValue> sorted_regions = json.as_array().values();
quick_sort(sorted_regions, [](auto& a, auto& b) {
return a.as_object().get("local_port").to_u32() < b.as_object().get("local_port").to_u32();
});
@ -210,10 +209,9 @@ int main(int argc, char** argv)
}
auto file_contents = file->read_all();
auto json = JsonValue::from_string(file_contents);
VERIFY(json.has_value());
auto json = JsonValue::from_string(file_contents).release_value_but_fixme_should_propagate_errors();
Vector<JsonValue> sorted_regions = json.value().as_array().values();
Vector<JsonValue> sorted_regions = json.as_array().values();
quick_sort(sorted_regions, [](auto& a, auto& b) {
return a.as_object().get("local_port").to_u32() < b.as_object().get("local_port").to_u32();
});