Я хочу отформатировать строку, содержащую данные JSON, используя Java. Кто-нибудь знает библиотеку с открытым исходным кодом для этого.
Если вы начинаете с существующей строки JSON, то Джексон может сделать это за вас:
ObjectMapper objectMapper = new ObjectMapper(); objectMapper.configure(SerializationConfig.Feature.INDENT_OUTPUT, true); String originalJson = ... JsonNode tree = objectMapper .readTree(originalJson); String formattedJson = objectMapper.writeValueAsString(tree);
с Джексоном 2.6.1
String beautify(String json) throws IOException { ObjectMapper mapper = new ObjectMapper(); Object obj = mapper.readValue(json, Object.class); return mapper.writerWithDefaultPrettyPrinter().writeValueAsString(obj); }
pom.xml:
<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.6.1</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.6.1</version> </dependency>
Преобразование строки JSON в вывод JSON Pretty Print с использованием Jackson
Обновление до предыдущего ответа от skaffman, с более новыми версиями Джексона (я думаю, 2+). Вторая строка кода теперь:
objectMapper.configure(SerializationFeature.INDENT_OUTPUT, true);
Вы можете попробовать json-lib: http://json -lib.sourceforge.net / apidocs / jdk15 / net / sf / json / JSONObject.html # toString (int, int)