mirror of
https://github.com/RGBCube/serenity
synced 2025-07-28 08:07:44 +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:
parent
304c03f457
commit
587f9af960
54 changed files with 172 additions and 228 deletions
|
@ -169,7 +169,7 @@ ErrorOr<DHCPv4Client::Interfaces> DHCPv4Client::get_discoverable_interfaces()
|
|||
auto file_contents = file->read_all();
|
||||
auto json = JsonValue::from_string(file_contents);
|
||||
|
||||
if (!json.has_value() || !json.value().is_array()) {
|
||||
if (json.is_error() || !json.value().is_array()) {
|
||||
dbgln("Error: No network adapters available");
|
||||
return Error::from_string_literal("No network adapters available"sv);
|
||||
}
|
||||
|
|
|
@ -121,12 +121,11 @@ Vector<IPv4Address> MulticastDNS::local_addresses() const
|
|||
}
|
||||
|
||||
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<IPv4Address> addresses;
|
||||
|
||||
json.value().as_array().for_each([&addresses](auto& value) {
|
||||
json.as_array().for_each([&addresses](auto& value) {
|
||||
auto if_object = value.as_object();
|
||||
auto address = if_object.get("ipv4_address").to_string();
|
||||
auto ipv4_address = IPv4Address::from_string(address);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue