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

将多行Json用户输入格式化为单行Json字符串,以传递给Java控制台应用程序中的JsonParser,java,json,jsonparser,Java,Json,Jsonparser,我正在创建一个控制台应用程序来解析JSON并使用它做一些事情。但是,我在准备要传递给JsonParser函数的用户输入时遇到问题: final JsonParser parser = Json.createParser(new StringReader(userInputStr)); 当控制台提示用户输入有效的JSON时,他们很可能正在粘贴跨多行的格式化JSON 我试图弄清楚如何将所有这些行转换为一个无空间的字符串,该字符串可以传递给Json.createParser() 如果用户完全按照以下

我正在创建一个控制台应用程序来解析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...
}

问题是删除空白字符。因此,只有在值中不能有任何空格时才尝试
jsonStr.replaceAll(“\\s+”,”)

,例如{“name”:“Ricky Smith”}会丢失名称中的空格。哦,对不起。我没想过。当我有一些想法时,我会更新答案。