JSON,JSONObject,map相关知识

JSONObject JSONObject只是一种数据结构,可以理解为JSON格式的数据结构(key-value 结构),可以使用put方法给json对象添加元素。JSONObject可以很方便的转换成字符串,也可以很方便的把其他对象转换成JSONObject对象。

添加依赖

<dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.28</version>
        </dependency>

JSON(JavaScript Object Notation的首字母缩写)是一种轻量级数据交换格式,最常用于客户端 - 服务器通信。它既易于读/写,又与语言无关。JSON值可以是另一个JSON 对象,数组,数字,字符串,布尔值(true / false)或null。也是后端开发中经常要接触的一个一个类,将要数据封装成json然后传递给前端。

1.**JSONObject继承自JSON ,JSON是Fastjson的一个主要类,常常需要调用JSON的两个方法: **

toJSONString(Object)【将指定的对象序列化成Json表示形式】 parseObject(String, Class)【将json反序列化为指定的Class模式】

2.JSONObject实现了Map,可见JSONObject是一个Map类型的数据结构,Map接口提供了很多操作map的方法,常用的增删改查。

阿里的json很好用,还有一个谷歌Gson也不错

3.JSONObject还实现了Cloneable, Serializable, InvocationHandler,说明JSONObject支持拷贝(并且JSONObject重写了clone方法),支持序列化与反序列化,InvocationHandler是通过一个代理实例零调用处理程序实现的接口,即标记使用Java动态代理机制。JDK文档指示:每个代理实例都有一个相关的调用处理程序。当一个方法是在一个代理实例调用,调用的方法进行编码并派遣其调用处理程序的invoke方法。

JSON串转JSON对象

String studentString = "{"id":1,"age":2,"name":"zhang"}";
 
//JSON字符串转换成JSON对象
JSONObject jsonObject1 = JSONObject.parseObject(stuString);
 
System.out.println(jsonObject1);

通过实体生成

Student student = new Student();
        student.setId(1);
        student.setAge("20");
        student.setName("张三");
        //生成json格式
        System.out.println(JSON.toJSON(student));
        //对象转成string
        String stuString = JSONObject.toJSONString(student);

HashMap数据结构转换

HashMap<String, Object> zhangsan = new HashMap<>();
        
        zhangsan.put("name", "张三");
        zhangsan.put("age", 18.4);
        zhangsan.put("birthday", "1900-20-03");
        zhangsan.put("majar", new String[] {"哈哈","嘿嘿"});
        zhangsan.put("null", null);
        zhangsan.put("house", false);
        System.out.println(new JSONObject(zhangsan).toString());
经验分享 程序员 微信小程序 职场和发展