From c2e9e9e5bfdae72dcfa05032920503f23145117b Mon Sep 17 00:00:00 2001 From: jeffcheasey88 <66554203+jeffcheasey88@users.noreply.github.com> Date: Sun, 14 Apr 2024 14:36:47 +0200 Subject: [PATCH] Fix json parser special chars --- .../framework/utils/json/JsonTokenizer.java | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/src/dev/peerat/framework/utils/json/JsonTokenizer.java b/src/dev/peerat/framework/utils/json/JsonTokenizer.java index 4271358..ad212f8 100644 --- a/src/dev/peerat/framework/utils/json/JsonTokenizer.java +++ b/src/dev/peerat/framework/utils/json/JsonTokenizer.java @@ -5,7 +5,7 @@ import be.jeffcheasey88.peeratcode.parser.TokenType; import be.jeffcheasey88.peeratcode.parser.Tokenizer; public class JsonTokenizer extends Tokenizer{ - + @Override public void parse(String line){ for(int i = 0; i < line.length(); i++){ @@ -29,7 +29,22 @@ public class JsonTokenizer extends Tokenizer{ for(; j < line.length(); j++){ c = line.charAt(j); if(c == '\\'){ - buffer+=c+line.charAt(++j); + c = line.charAt(++j); + switch(c){ + case 'n': + buffer+='\n'; + break; + case 'r': + buffer+='\r'; + break; + case 't': + buffer+='\t'; + break; + default: + buffer+=c; + break; + } + continue; } if(c == '\"') break; buffer+=c; @@ -38,21 +53,6 @@ public class JsonTokenizer extends Tokenizer{ i=j; continue; } - if(c == '\''){ - String buffer = ""; - int j = i+1; - for(; j < line.length(); j++){ - c = line.charAt(j); - if(c == '\\'){ - buffer+=c+line.charAt(++j); - } - if(c == '\'') break; - buffer+=c; - } - getTokens().add(new Token(1, i+1, buffer, TokenType.CHAR)); - i=j; - continue; - } getTokens().add(new Token(1, i+1, ""+c, TokenType.DELIMITER)); } }