性能优化技巧
JSONMap 底层基于 HashMap,单次读写性能与原生 Map 相当。以下技巧可帮助避免常见性能陷阱。
复用对象
// 避免在循环中频繁创建 JSONMap
JSONMap map = new JSONMap();
for (String item : items) {
map.clear();
map.putAll(parseJson(item));
process(map);
}
子对象缓存
多次读取同一子路径下的不同字段时,先获取子对象再取值:
// 不推荐:每次重新解析路径
String name = data.getStr("user.profile.name");
String email = data.getStr("user.profile.email");
String phone = data.getStr("user.profile.phone");
// 推荐:先获取子对象
JSONMap profile = data.getMap("user.profile");
String name = profile.getStr("name");
String email = profile.getStr("email");
String phone = profile.getStr("phone");
注意引用而非副本
getMap() 返回内部 Map 的引用,修改会反映到原对象:
JSONMap user = data.getMap("user");
user.put("age", 30); // 修改原对象 data
路径缓存
路径解析结果会被缓存,重复访问同一路径性能开销很小。
预估初始容量
如果已知数据量,可在构造时指定初始容量:
JSONMap map = new JSONMap(100); // 初始容量 100