我找到了从JAVA中的JSON对象获取特定Key值的方法。但是现在对于特定的URL,需要找到获取所有值的方法。这基本上是对这个结果数组进行搜索。请让我知道这样做的方法。 注意:我是Jackson API的新手,尝试使用它,但无法成功。
以下是URL的示例响应JSON响应:
"content": [{
"id": 1068,
"name": "A",
"place": []
}, {
"id": 1284,
"name": "B",
"Breed": "Pug",
"place": [{
"pincode": 1469,
"City": "Bangalore",
"Owner": [{
"name": "John",
"Family": {
"Son": {
"id": 215,
"Age": 18
},
"Daughter": {
"id": 558,
"Age": 20
}
}
}]
}]
}]
具体来说,我想要以下输出: 1068 一个 1284 乙 泥料 1469 班加罗尔 约翰 215 18 558 20
答案 0 :(得分:0)
让我们练习java。 我将一些键更改为小写键。
ex)"Breed": "Pug",
至"breed": "Pug",
.
├── pom.xml
└── src
├── main
│ └── java
│ └── com
│ └── mycompany
│ └── app
│ ├── App.java
│ ├── Content.java
│ ├── Contents.java
│ ├── Owner.java
│ ├── Person.java
│ └── Place.java
└── test
└── java
└── com
└── mycompany
└── app
11 directories, 7 files
您可以在根目录中执行此操作。
$ mvn编译exec:java @ app
---------
Golly...
---------
1068
A
1284
B
Pug
1469
Bangalore
John
215
18
558
20
---------
Howdy!
---------
Contents(content=[Content(id=1068, name=A, breed=null, place=[]), Content(id=1284, name=B, breed=Pug, place=[Place(pincode=1469, city=Bangalore, owner=[Owner(name=John, family={Son=Person(id=215, age=18), Daughter=Person(id=558, age=20)})])])])
的pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany.app</groupId>
<artifactId>my-app</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>Maven Quick Start Archetype</name>
<url>http://maven.apache.org</url>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<executions>
<execution>
<id>app</id>
<goals>
<goal>java</goal>
</goals>
<configuration>
<!-- mvn exec:java@app -->
<mainClass>com.mycompany.app.App</mainClass>
<arguments/>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.9.0</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.16</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.0</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.2</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
App.java
package com.mycompany.app;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.HashMap;
import java.util.Map;
import java.util.List;
import java.io.IOException;
public class App {
public static void main(String[] args) throws IOException {
String json = ""
+ "\"content\": [{"
+ " \"id\": 1068,"
+ " \"name\": \"A\","
+ " \"place\": []"
+ " }, {"
+ " \"id\": 1284,"
+ " \"name\": \"B\","
+ " \"breed\": \"Pug\","
+ " \"place\": [{"
+ " \"pincode\": 1469,"
+ " \"city\": \"Bangalore\","
+ " \"owner\": [{"
+ " \"name\": \"John\","
+ " \"family\": {"
+ " \"Son\": {"
+ " \"id\": 215,"
+ " \"age\": 18"
+ " },"
+ " \"Daughter\": {"
+ " \"id\": 558,"
+ " \"age\": 20"
+ " }"
+ " }"
+ " }]"
+ " }]"
+ "}]";
ObjectMapper mapper = new ObjectMapper();
Contents contents = mapper.readValue("{" + json + "}", Contents.class);
System.out.println("---------");
System.out.println("Golly... ");
System.out.println("---------");
for (Content con : contents.getContent()) {
System.out.println(con.getId() == null ? "" : con.getId() );
System.out.println(con.getName() == null ? "" : con.getName() );
System.out.println(con.getBreed() == null ? "" : con.getBreed());
for (Place place : con.getPlace()) {
System.out.println(place.getPincode() == null ? "" : place.getPincode());
System.out.println(place.getCity() == null ? "" : place.getCity() );
for (Owner owner : place.getOwner()) {
System.out.println(owner.getName() == null ? "" : owner.getName());
for (Person p : owner.getFamily().values()) {
System.out.println(p.getId() == null ? "" : p.getId());
System.out.println(p.getAge() == null ? "" : p.getAge());
}
}
}
}
System.out.println("---------");
System.out.println("Howdy! ");
System.out.println("---------");
System.out.println(contents.toString());
}
}
Contents.java
package com.mycompany.app;
import java.util.List;
import lombok.Data;
@Data
public class Contents {
private List<Content> content;
}
Content.java
package com.mycompany.app;
import java.util.List;
import lombok.Data;
@Data
public class Content {
private Integer id;
private String name;
private String breed;
private List<Place> place;
}
Place.java
package com.mycompany.app;
import java.util.List;
import lombok.Data;
@Data
public class Place {
private Integer pincode;
private String city;
private List<Owner> owner;
}
Owner.java
package com.mycompany.app;
import java.util.List;
import java.util.Map;
import lombok.Data;
@Data
public class Owner {
private String name;
private Map<String, Person> family;
}
Person.java
package com.mycompany.app;
import lombok.Data;
@Data
public class Person {
private Integer id;
private Integer age;
}