将多行Json用户输入格式化为单行Json字符串,以传递给Java控制台应用程序中的JsonParser

时间:2019-03-27 03:20:27

标签: java json jsonparser

我正在创建一个解析JSON并对其进行处理的控制台应用程序。但是,我在准备将用户输入传递给JsonParser函数时遇到问题:

final JsonParser parser = Json.createParser(new StringReader(userInputStr));

当控制台提示用户输入有效的JSON时,他们很可能将粘贴跨越多行的格式化json。

我试图弄清楚如何将所有这些行转换为可以传递给Json.createParser()的无空格单个字符串。

如果用户完全按照以下方式输入,则类似此工作的小样本:

{"name":"Falco","age":3,"bitable":false,"certificate":null}

但是,在传递给JsonParser之前,需要处理以下内容:

{
   "name":"Falco",
   "age":3,
   "bitable":false,
   "certificate":null
}

我首先尝试以下操作来处理用户输入中的每一行:

Scanner scanner = new Scanner(new BufferedInputStream(System.in));
while (scanner.hasNext()) {
    // use scanner.next() here...
}

1 个答案:

答案 0 :(得分:0)

问题在于删除空格字符。因此,尝试jsonStr.replaceAll("\\s+","")