From 7be045fdb4c5ed904651daffa517d8c6d34d3d68 Mon Sep 17 00:00:00 2001 From: jeffcheasey88 <66554203+jeffcheasey88@users.noreply.github.com> Date: Thu, 21 Dec 2023 23:07:07 +0100 Subject: [PATCH] Parse double + fix Boolean parse --- src/dev/peerat/framework/utils/json/JsonParser.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/dev/peerat/framework/utils/json/JsonParser.java b/src/dev/peerat/framework/utils/json/JsonParser.java index d51783c..b3a4c02 100644 --- a/src/dev/peerat/framework/utils/json/JsonParser.java +++ b/src/dev/peerat/framework/utils/json/JsonParser.java @@ -45,7 +45,11 @@ public class JsonParser extends Parser{ content.then(new RedirectStateTree<>(base, (global, local) -> global.set(local.get()))).end(); content.then((validator) -> validator.validate((token) -> token.getType().equals(TokenType.STRING), (bag, token) -> bag.set(token))).end(); content.then((validator) -> validator.validate((token) -> token.getType().equals(TokenType.CHAR), (bag, token) -> bag.set(token))).end(); - content.then((validator) -> validator.validate((token) -> token.getType().equals(TokenType.NAME), (bag, token) -> bag.set(token))).end(); + StateTree number = content.then((validator) -> validator.validate((token) -> token.getType().equals(TokenType.NAME), (bag, token) -> bag.set(token))); + number.end(); + number.then((validator) -> validator.validate((token) -> token.getValue().equals("."), (bag, token) -> bag.set(bag.get().concat(token)))) + .then((validator) -> validator.validate((token) -> token.getType().equals(TokenType.NAME), (bag, token) -> bag.set(bag.get().concat(token)))) + .end(); StateTree mapper = new StateTree<>(); StateTree mapper_key = mapper.then((validator) -> validator.validate((token) -> token.getType().equals(TokenType.STRING), (bag, token) -> { @@ -110,10 +114,10 @@ public class JsonParser extends Parser{ return Long.parseLong(content); }catch(Exception _){ try { - return Boolean.parseBoolean(content); + return Double.parseDouble(content); }catch(Exception __){ try{ - return Double.parseDouble(content); + return Boolean.parseBoolean(content); }catch(Exception ___){} } }