ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

JSON学习

2019-12-16 13:01:26  阅读:221  来源: 互联网

标签:转换 对象 json 学习 JSON Java ObjectMapper


JSON学习

概念

JSON(JavaScript Object Notation,JavaScript对象表示法)

将消息用对象封装起来

var p={"name":"张三","age":23,"gender":"M"};

JSON比XML更小、更快、更易解析

语法

  1. 基本规则

    数据在名称/值对中:键用引号引起来,单引号和双引号都可以

    数据的类型:

    1. 数字(整数或浮点数)
    2. 字符串(双引号)
    3. 逻辑值(true/false)
    4. 数组
    5. 对象
    6. null

    数据由逗号分隔

    花括号保存对象

    方括号保存数组

    我们可以直接在JS中定义JSON对象:

        <script>
            var person={"name":"张三","age":23,"gender":"M"};
            alert(person);
        </script>
  2. 获取数据

    1. json对象.键名
    2. json对象["键名"]
    3. json数组对象[索引]

    第一种和第二种的区别就是第一种方法,键名不需要加引号,而第二种方法需要

JSON数据和Java对象的相互转换

JSON一般被当做传输时数据的存储格式

Java对象转换为Json

JSON解析器是一个工具类,常用的有:Jsonlib\Gson(谷歌)\fastjson(阿里)\jackson(springMVC框架中内置)

这里我们使用jackson,使用步骤为:

  1. 导入jackson的相关jar包

  2. 创建jackson核心对象ObjectMapper

  3. 调用ObjectMapper相关方法进行转化

    示例:

    //1.创建Person对象
            Person p=new Person();
            p.setAge(23);
            p.setName("张三");
            p.setGender("M");
            //2.创建jackson核心对象ObjectMapper
            ObjectMapper mapper=new ObjectMapper();
            //3.转换
            /*
            转换方法:
            1. mapper.writeValue(参数1,obj);
                参数1:
                    File:将Obj对象转换为JSON字符串,并保存到指定的文件中
                    Writer:将Obj对象转换为JSON字符串,并将JSON数据填充到字符输出流中
                    OutputStream:将Obj对象转换为JSON字符串,并将JSON数据填充到字节输出流中
            2. mapper.writeValueAsString(obj);//将对象转换为JSON字符串
    
            输出的字符串是{"name":"张三","age":23,"gender":"M"}
             */

注解:添加在Java对象的属性上

  1. @JsonIgnore:用于排除属性,对应的属性就不会被转换到JSON中

  2. @JsonFormat;用于属性值的格式化,也就是对该属性的转换结果的形式进行要求。例如Date类型的数据,如果直接转换的话输出的是毫秒值,显然不是我们想要的,我们可以这样操作:

    @JsonFormat(pattern=“yyyy-MM-dd")

复杂Java对象的转换:集合和数组

List:直接把集合对象传进去,转换出来的就是集合形式的JSON

Map:输出的也是键值对的对象格式的JSON

JSON转为Java对象

这种用的相比上面的那种比较少

同样是使用Jackson,调用的方法是readValue(json字符串,Class类型),这里的Class类型也就是要转换为的Java对象的类型

String json="{\"gender\":\"M\",\"name\":\"张三\",\"age\":23}";
ObjectMapper mapper=new ObjectMapper();
mapper.readValue(json,Person.class);

标签:转换,对象,json,学习,JSON,Java,ObjectMapper
来源: https://www.cnblogs.com/jiading/p/12048558.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有