diff --git a/core/src/main/java/eu/jonahbauer/json/JsonValue.java b/core/src/main/java/eu/jonahbauer/json/JsonValue.java index 2411032..8cf64fa 100644 --- a/core/src/main/java/eu/jonahbauer/json/JsonValue.java +++ b/core/src/main/java/eu/jonahbauer/json/JsonValue.java @@ -1,6 +1,8 @@ package eu.jonahbauer.json; import eu.jonahbauer.json.exceptions.JsonConversionException; +import eu.jonahbauer.json.exceptions.JsonParserException; +import eu.jonahbauer.json.parser.JsonParser; import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -41,6 +43,17 @@ public sealed interface JsonValue extends Serializable permits JsonObject, JsonA return value == null ? "null" : value.toPrettyJsonString(); } + /** + * Parses a string as a JSON. The string must adhere to the JSON grammar. + * @param json a string + * @return the result of parsing the string as a JSON + * @throws JsonParserException if the string cannot be parsed as JSON + */ + static @Nullable JsonValue parse(@NotNull String json) { + var parser = new JsonParser(json); + return parser.parse(); + } + /** * Converts an object to a JSON value: *