关于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  阅读(1380)  评论(0编辑  收藏  举报

导航