请问,fastjson中 new JSONObject(true) 底层是 用hashmap ,那么fastjson2中如果实现。
原提问者GitHub用户heyihuiforjava
在Fastjson2中,使用HashMap来实现JSONObject(设置缺省值true),可以使用如下方式:
public class JSONObject extends HashMap<String, Object> {
private static final long serialVersionUID = 1L;
public JSONObject() {
super();
}
public JSONObject(int initialCapacity) {
super(initialCapacity);
}
public JSONObject(Map<? extends String, ? extends Object> m) {
super(m);
}
public JSONObject(boolean ordered) {
super();
if (ordered) {
super.put(JSON.DEFAULT_TYPE_KEY, JSON.DEFAULT_TYPE_NAME_HASHMAP);
} else {
super.put(JSON.DEFAULT_TYPE_KEY, JSON.DEFAULT_TYPE_NAME);
}
}
} 在这个实现中,JSONObject类继承了HashMap< String, Object>,并通过相应的构造函数实现了对应的初始化。同时在构造函数中,如果ordered为true,那么就把静态变量JSON.DEFAULT_TYPE_KEY设置为JSON.DEFAULT_TYPE_NAME_HASHMAP。
这个实现和Fastjson1.2.x中的实现基本一致,只是将代码包装成了一个独立的类。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。