关于JsonObject的笔记
JsonObject继承与Json
JSONArray中对象的顺序是不会变化的,也就是put进去的时候是什么顺序,取的时候就是什么顺序。
https://blog.csdn.net/weixin_39214304/article/details/80652931
JSONObject put数据之后,排序会发生变化,因为jsonobject内部是通过hashmap来实现的,会无序,如果想要变成有序,
可以通过下面方法来实现,这种对于加密来说顺序实在太重要;
当json字符串需要转为json对象时, 一般用这个JSON.parseObject(aaa),但是这个方法可能导致顺序变乱,
用下面的方法可以避免这种情况,
LinkedHashMap<String,String> requestObject = JSON.parseObject(aaa,LinkedHashMap.class,Feature.OrderedField);
然后再将requestObject 转为json
JSONObject jsonObject = new JSONObject(true);这个true的作用是:后面加入的参数,都是是有序的,不加true默认是无序的https://blog.csdn.net/shi0299/article/details/52515355 jsonObject.putAll(jsonMap);
jsonobject和hashmap互转
HashMap<String,String> abc=JSON.parseObject(testparams,HashMap.class);
jsonobject转map见链接https://www.cnblogs.com/jpfss/p/8625526.html
JSON.parseObject(String str)和JsonObject.parseObject(String str)是没有区别的,调用的都是系统一个方法,都是把字符串转为jsonobject对象
JSON.parseObject(String str)是将str转化为相应的JSONObject对象,其中str是“键值对”形式的json字符串,转化为JSONObject对象之后就可以使用其内置的方法,进行各种处理了。
根据源码显示:JSON是一个抽象类,JSON中有一个静态方法parseObject(String text),将text解析为一个JSONObject对象并返回;JSONObject是一个继承自JSON的类,当调用JSONObject.parseObject(result)时,会直接调用父类的parseObject(String text)。所以两者没什么区别,一个是用父类去调用父类自己的静态的parseObject(String text),一个是用子类去调用父类的静态parseObject(String text),两者调的是同一个方法;
JsonObject.parseObject(String str)和JSONObject.fromObject(jsonStr);区别
功能是差不多的,导入的类不同而已;
虽然都是返回JSONObject,但是区别还是比较大的
JSONObject.parseObject(a); 这个方法需要导入import com.alibaba.fastjson.JSONObject; a要求是json字符串
JSONObject.fromObject(b); 这个方法需要导入import net.sf.json.JSONObject; b是java对象
还有就是
JsonObject的tostring()和tojsonString()的区别:首先2个都是将jsonobject对象转为json字符串.实际上JsonObject的tostring()内部调的还是tojsonString(),同一个方法;
还有就是JSON.toJSONString(js)和JsonObject的tojsonString(js)区别:
没有区别.JsonObject是JSON的子类,调用的实际也是JSON的toJSONString(js)方法
JsonObject也可以直接调用tojsonString()把自己转为json字符串
比如:
JSONObject js=new JSONObject();
js.put("fads", "fgsd");
String a=js.toJSONString();
HashMap<String, String> hm=
new
HashMap<>();
hm.put(
"张三"
,
"李四"
);
hm.put(
"uik"
,
"rfe"
);
System.out.println(hm.toString());
String a=JSON.toJSONString(hm);
System.out.println(a);
posted on 2019-06-18 14:57 Cherishforchen 阅读(1435) 评论(0) 编辑 收藏 举报