json和Jackson的使用

目录

 

什么是json?

json的使用。

语法:

如何得到json中的数据呢?

json数据和Java对象的转换。

1,导入依赖

2,创建Jackson的核心对象-ObjectMapper

3,Java对象转json,json转Java对象。

Jackson的两个重要注解

细节:


什么是json?

概念:JavaScript Object Notation JavaScript 对象标记表示法。

在Java语言中我们把一个人的name,age封装成一个对象(person)。把对象当做参数。

JavaScript中也是,例如这个对象 var p = {"name":"tomas","age":10}; 【JavaScript会解析它】

作用:json现在多用于存储和交换文本信息的语法,进行数据的传输,json 比XML更小,更快,更易解析;

json的使用。

语法:

语法:
    #数据在名称/值对中:json数据是由键值对构成的
        *键用引号(单双都行)引起来,也可以不使用引号;
        *值得取值类型:
        1,数字 整数和浮点数
        2,字符串 在双引号中
        3,逻辑值 true or false
        4,数组 在 方括号中“[]”
        5,对象 在花括号中{}
    #数据由逗号分开
    #多个数据由,分割
    #花括号保存对象
    #方括号保存数组
    var person = {'name':'tomas',"age":23};

    var persons = [{'name':'tomas',"age":23},
                {'name':'jack',"age":21},
                {'name':'alice',"age":18}]
    获取数据:
    1,json对象.key   key表示键值。
    2,json对象['key']
    3,数组对象['索引']

 var name = person['name'];
 var name1 = person.name;
   var tempPerson= persons[1];

如何得到json中的数据呢?

运用for in循环。

// 获取persons数组中的所有json数据 for in 循环,获得键的值
        for(let key in person){
            console.log( key);
            // the type of key is a string
            console.log(typeof key);
            console.log(person[key]);
        }
        for(var i=0;i<persons.length;i++){
            var p =persons[i];
            // console.log(p);
            for(let key in p){
                console.log(key);
                console.log(p[key]);
            }
        }

json数据和Java对象的转换。

我们用Jackson【springMVC内置的json转换器】

1,导入依赖

<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-core</artifactId>
      <version>2.9.8</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.9.8</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations -->
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-annotations</artifactId>
      <version>2.9.8</version>
    </dependency>

2,创建Jackson的核心对象-ObjectMapper

 ObjectMapper om = new ObjectMapper();

3,Java对象转json,json转Java对象。

public class JacksonTest {
//    java对象转为json
    public static void main(String[] args) throws Exception {
        Person per = new Person();
        per.setId(1);
        per.setName("tomas");
//        jackson 核心对象
        ObjectMapper om = new ObjectMapper();

    /**
     * writeValue(参数1,obj);几种重载
     * 参数1
     * File 将对象转为json字符串,并保存到指定的文件中
     * Writer 将对象转为json字符串,并将json数据填充到字符输入流中
     * OutputStream 将对象转为json字符串,并将数据填充到字节输出流中
     *
     * writeValueAsString(obj),将对象转为json
     *
      */
        String s = om.writeValueAsString(per);
        System.out.println(s);
//      把Jason数据变为Java对象
        Person p1 = om.readValue(s,Person.class);
        System.out.println(p1);

    }
}

结果:

Jackson的两个重要注解

 1, @JsonIgnore 排除属性。对象属性不转换json
 2,@JsonFormat 属性值的格式化 例如日期 有毫秒,我们并不需要。
            所以@JsonFormat(pattern = "yyyy-MM-dd")

细节:

Java中List集合会转为json数组。

Map集合就是json形式【本身 key = value 键值对形式】;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值