gpt4 book ai didi

android - 结合 jackson 对象映射器和流解析

转载 作者:搜寻专家 更新时间:2023-11-01 08:04:52 24 4
gpt4 key购买 nike

我有一个 Android 应用程序,其中解析一个 json block 大约需要 250 毫秒。它包含一个数组,我真的只需要立即可用的前 6-7 个值。我真的需要加快获取这些数据的速度。

我有一个基本上看起来像的数据结构:

class Data {
List<Map> data = objectmapper_readvalue_data;

public HashMap getItem(int i) {
return data.get(i);
}
}

我真的很希望用 JsonParser 做这样的事情: 类数据{ 列表数据 = new List(); JsonParser p;

    public HashMap getItem(int i) {
while (data.length < i) {
data.append(p.parseOneBlockOfData());
}
return data.get(i);
}
}

只有前 5-6 个值会在第一次渲染时被解析,其他的我可以稍后处理。但是,我缺少“parseOneBlockOfData”函数。当然,我可以使用 StringBuilder 来缓冲解析中的每个值,直到找到下一个完整 block ,然后使用 objectParser 或其他,但我不确定性能会怎样。

是否有任何非 hackish 方法可以做到这一点?

最佳答案

incase anyone googles this:

JsonParser parser = objectMapper.getFactory().createJsonParser(inputStream);

// Keep going until we find filters:
String fieldName = null;
JsonToken token = null;
while (!"filters".equals(fieldName)) {
token = parser.nextToken();
while (token != JsonToken.START_ARRAY) {
token = parser.nextToken();
}
fieldName = parser.getCurrentName();
}
// We're at the filters node

while (parser.nextToken() == JsonToken.START_OBJECT) {
Map x = objectMapper.readValue(parser, Map.class);
}

关于android - 结合 jackson 对象映射器和流解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15688951/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com