alibaba / fastjson2

🚄 FASTJSON2 is a Java JSON library with excellent performance.
Apache License 2.0
3.74k stars 484 forks source link

fastjson2如何通过JSONReader解析大json #2663

Open lierliang12345 opened 4 months ago

lierliang12345 commented 4 months ago

jastjson升级到fastjson2后,如何通过JSONReader解析大json

升级前实现示例 JSONReader reader = getJSONReader(json); reader.startObject(); while (reader.hasNext()) { String key = reader.readString(); if ("name1".equals(key)) { setInitNodeProgress(reader.readString()); } else if ("name2".equals(key)) { treeHtmlEntity.setTreeType(reader.readString()); } else if ("name3".equals(key)) { treeHtmlEntity.setLang(reader.readString()); } else if ("name4".equals(key)) { treeHtmlEntity.setProdId(reader.readString()); } else if ("name5".equals(key)) { parsesJsonArray(reader.readString(), multiFilterList); } else { reader.readObject(); } } reader.endObject(); reader.close(); 想知道升级后如何实现

wenshao commented 4 months ago

是大致怎样的一个结构?

lierliang12345 commented 4 months ago

数据大小超过1M的树形结构,结构大致如下 { "id": "1", "name": "2", "children": [ { "id": "1", "name": "2", "children": [ { "id": "1", "name": "2", "children": [] } ] }, { "id": "1", "name": "2", "children": [] } ] }

wenshao commented 4 months ago

10M以内的,直接parse,不用Streaming API性能更好吧

lierliang12345 commented 4 months ago

这个是在手机端用的,直接parse也是可以的嘛

tclxhzy24985 commented 4 months ago

10M以上的数据,那种解析性能更好?

10M以内的,直接parse,不用Streaming API性能更好吧

KaKaLuoTeSun commented 2 months ago

目前新版本里没有reader.hasNext() 有什么替代的吗