Вы можете использовать Jayway JsonPath . Ниже приведена ссылка на GitHub с исходным кодом, подробностями о pom и хорошей документацией.
https://github.com/jayway/JsonPath
Пожалуйста, выполните следующие шаги.
Шаг 1 : Добавьте зависимость пути JSON Jayway в путь к классу с помощью Maven или загрузите файл JAR и добавьте его вручную.
<dependency>
<groupId>com.jayway.jsonpath</groupId>
<artifactId>json-path</artifactId>
<version>2.2.0</version>
</dependency>
Шаг 2 : Пожалуйста, сохраните ваш входной JSON как файл для этого примера. В моем случае я сохранил ваш JSON как sampleJson.txt. Обратите внимание, что вы пропустили запятую между pageInfo и публикациями.
Шаг 3 : Считайте содержимое JSON из вышеуказанного файла с помощью bufferedReader и сохраните его как String.
BufferedReader br = new BufferedReader(new FileReader("D:\\sampleJson.txt"));
StringBuilder sb = new StringBuilder();
String line = br.readLine();
while (line != null) {
sb.append(line);
sb.append(System.lineSeparator());
line = br.readLine();
}
br.close();
String jsonInput = sb.toString();
Шаг 4 : проанализируйте строку JSON с помощью JSON-анализатора JSON.
Object document = Configuration.defaultConfiguration().jsonProvider().parse(jsonInput);
Шаг 5 : прочтите подробности, как показано ниже.
String pageName = JsonPath.read(document, "$.pageInfo.pageName");
String pagePic = JsonPath.read(document, "$.pageInfo.pagePic");
String post_id = JsonPath.read(document, "$.posts[0].post_id");
System.out.println("$.pageInfo.pageName " + pageName);
System.out.println("$.pageInfo.pagePic " + pagePic);
System.out.println("$.posts[0].post_id " + post_id);
Вывод будет :
$.pageInfo.pageName = abc
$.pageInfo.pagePic = http://example.com/content.jpg
$.posts[0].post_id = 123456789012_123456789012