zoukankan      html  css  js  c++  java
  • 关于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);
  • 相关阅读:
    函数调用本质
    互联网协议入门
    iOS开发系列-Block本质篇
    iOS组件化开发-CocoaPods简介
    版本控制-Git
    iOS开发系列-NSDate
    iOS开发系列-线程同步技术
    Python 抓取网页gb2312乱码问题
    常用正则表达式
    Java 命名规范
  • 原文地址:https://www.cnblogs.com/cherishforchen/p/11045164.html
Copyright © 2011-2022 走看看