Форматирование многострочного пользовательского ввода Json в одну строку Json String для передачи в JsonParser в консольном приложении Java - PullRequest
0 голосов
/ 27 марта 2019

Я создаю консольное приложение, которое анализирует JSON и что-то с ним делает.Однако у меня возникают проблемы при подготовке ввода пользователя для передачи в функцию JsonParser:

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

Когда консоль предлагает пользователю ввести действительный JSON, они, скорее всего, будут вставлять форматированный json, который охватывает несколькоlines.

Я пытаюсь выяснить, как я могу преобразовать все эти строки в единую строку без пробелов, которую можно передать в 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 голосов
/ 27 марта 2019

Проблема заключается в удалении пробелов.Так что попробуйте jsonStr.replaceAll("\\s+","")

...