【发布时间】:2020-05-04 07:17:11
【问题描述】:
我需要解析同一个 json 流两次,一次是识别 json 流中数组的长度,然后是解析实体。但是,只有一个 JsonParser 实例可以开始。有没有办法可以克隆它或创建它的副本,因为一旦使用实例进行解析,它显然不能用于重新解析相同的 json 流。 提前致谢。
例子:
static class ResultEntitiesContainer {
List<ResultEntity> resultEntities;
// getter and setters available
}
void parseEntities(JsonParser parser) {
// Need to extract number of entities.
int count=0;
ObjectMapper om = new ObjectMapper();
JsonNode node = om.readTree(parser);
node = node.get("resultEntities");
if (node.isArray()) {
count = node.size();
}
// Need to parse the entities in the json node
ResultEntitiesContainer rec = om.readValue(parser, ResultEntitiesContainer.class);
}
【问题讨论】:
-
你能举个例子来展示一些代码吗?
-
提供了一个例子。在这里,我需要使用相同的解析器实例,但是两次解析json流。
-
ResultEntitiesContainer看起来如何?你能通过迭代ResultEntitiesContainer的字段来计算吗? -
只是一个容器类,没什么特别的。让我也补充一下。
标签: java json parsing fasterxml