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

@ -70,15 +70,10 @@ static Vector<OpenFile> get_open_files_by_pid(pid_t pid)
}
auto data = file.value()->read_all();
JsonParser parser(data);
auto result = parser.parse();
if (!result.has_value()) {
VERIFY_NOT_REACHED();
}
auto json = JsonValue::from_string(data).release_value_but_fixme_should_propagate_errors();
Vector<OpenFile> files;
result.value().as_array().for_each([pid, &files](const JsonValue& object) {
json.as_array().for_each([pid, &files](const JsonValue& object) {
OpenFile open_file;
open_file.pid = pid;
open_file.fd = object.as_object().get("fd").to_int();