{"code":200,"message":null,"data":[{"nodeId":"34","nodeHost":"127.0.0.1","nodePort":1700,"nodeType":1,"linkType":0,"status":1,"version":"4.8.5.10","syncTime":1679211215000},{"nodeId":"56","nodeHost":"127.0.0.1","nodePort":1700,"nodeType":1,"linkType":0,"status":1,"version":"4.8.5.10","syncTime":1679211215000}]}
这种json嵌套的我的解决方案如请参考
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
public class JsonParser {
public static void main(String[] args) {
String json = "{\"code\":200,\"message\":null,\"data\":[{\"nodeId\":\"1721619917001\",\"nodeHost\":\"127.0.0.1\",\"nodePort\":1700,\"nodeType\":1,\"linkType\":0,\"status\":1,\"version\":\"4.8.5.10\",\"syncTime\":1679211215000},{\"nodeId\":\"1721619917001\",\"nodeHost\":\"127.0.0.1\",\"nodePort\":1700,\"nodeType\":1,\"linkType\":0,\"status\":1,\"version\":\"4.8.5.10\",\"syncTime\":1679211215000}]}";
try {
ObjectMapper objectMapper = new ObjectMapper();
JsonNode jsonNode = objectMapper.readTree(json);
// 获取code字段的值
int code = jsonNode.get("code").asInt();
System.out.println("code: " + code);
// 获取data字段的值
JsonNode dataNode = jsonNode.get("data");
// 遍历data数组
for (JsonNode node : dataNode) {
String nodeId = node.get("nodeId").asText();
String nodeHost = node.get("nodeHost").asText();
int nodePort = node.get("nodePort").asInt();
int nodeType = node.get("nodeType").asInt();
int linkType = node.get("linkType").asInt();
int status = node.get("status").asInt();
String version = node.get("version").asText();
long syncTime = node.get("syncTime").asLong();
System.out.println("nodeId: " + nodeId);
System.out.println("nodeHost: " + nodeHost);
System.out.println("nodePort: " + nodePort);
System.out.println("nodeType: " + nodeType);
System.out.println("linkType: " + linkType);
System.out.println("status: " + status);
System.out.println("version: " + version);
System.out.println("syncTime: " + syncTime);
System.out.println("---------------------------");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}