Java学习之jackson篇

Java学习之jackson篇0x00前言本篇内容比较简单,简单记录。0x01Json概述概述:JSON(JavaScriptObjectNotation,JS对象简谱)是一种

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

Java学习之jackson篇

0x00 前言

本篇内容比较简单,简单记录。

0x01 Json 概述

概述:JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

这里复制了一段百度百科的解释,其实内容都可以用一句话来概括。

json主要用于数据交互,主要有键值对来表示。

而在Java里面需要解析json需要用到json的解析器。

0x02 jackson 解析器

在Java里面常见的json解析器有

Jsonlib,Gson,fastjson,jackson

那么这里拿jackson来进行演示。

常用方法

1. readValue(json字符串数据,Class)      json转换为java对象

2.writeValue(参数1,obj):
 参数1:
 
File:将obj对象转换为JSON字符串,并保存到指定的文件中

Writer:将obj对象转换为JSON字符串,并将json数据填充到字符输出流中

OutputStream:将obj对象转换为JSON字符串,并将json数据填充到字节输出流中

3.writeValueAsString(obj):将对象转为json字符串


注解:

1. @JsonIgnore:排除属性。

2. @JsonFormat:属性值得格式化

对象转Json

这里还需要定义一个实体类,这里就不写了。

package com.test.domain;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;

public class jsonDemo {
    public static void main(String[] args) {
        Person person = new Person();
        person.setName("xiaoming");
        person.setSex("name");
        person.setAge(18);
        ObjectMapper objectMapper = new ObjectMapper();
        try {
            String s = objectMapper.writeValueAsString(person);
            System.out.println(s);
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }


    }
}

显示数据:

{“name”:”xiaoming”,”age”:18,”sex”:”name”}

list集合转换json

package com.test.domain;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;

import java.util.ArrayList;
import java.util.List;

public class jsonDemo {
    public static void main(String[] args) {
        Person p1= new Person();
        p1.setName("xiaoming");
        p1.setSex("name");
        p1.setAge(18);
        Person p2= new Person();
        p2.setName("xiaoming");
        p2.setSex("name");
        p2.setAge(18);
        ObjectMapper objectMapper = new ObjectMapper();
        List<Person> list = new ArrayList<>();
        list.add(p1);
        list.add(p2);

        try {
            String s = objectMapper.writeValueAsString(list);
            System.out.println(s);
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }
    }
}

json转Java对象

package com.test.domain;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class jsonDemo {
    public static void main(String[] args) throws IOException {
       String json = "{\"sex\":\"男\",\"age\":\"18\",\"name\":\"xiaoming\"}";
        ObjectMapper objectMapper = new ObjectMapper();
        Person person = objectMapper.readValue(json, Person.class);
        System.out.println(person.toString());
    }
}

0x03 结尾

后面准备开始更新Java框架内容。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/119934.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Weblogic性能优化(图解)

    Weblogic性能优化(图解)

    2022年3月3日
    38
  • 防止三极管饱和_稳压二极管稳压时处于什么偏置状态

    防止三极管饱和_稳压二极管稳压时处于什么偏置状态下图为一个分立器件搭建的BUCK电路,但是不明白图中的两个肖特基二极管(D1.D2)的作用是什么防止Q1饱和,但沒深度。

    2025年9月3日
    6
  • 哈希表是哪一章节_哈希表的构造方法

    哈希表是哪一章节_哈希表的构造方法哈希表是个啥?小白:庆哥,什么是哈希表?这个哈希好熟悉,记得好像有HashMap和HashTable之类的吧,这是一样的嘛?????庆哥:这个哈希确实经常见????,足以说明它是个使用非常频繁的玩意儿,而且像你说的HashMap和HashTable之类的与哈希这个词肯定是有关系的,那哈希是个啥玩意啊,这个咱们还是得先来搞明白啥是个哈希表。????我们看看百科解释吧:散列表(Hashtable,也叫哈…

    2022年8月10日
    6
  • 三种JS截取字符串方法

    三种JS截取字符串方法转载: https://www.cnblogs.com/zccfun/p/6054533.htmlJS提供三个截取字符串的方法,分别是:slice(),substring()和substr(),它们都可以接受一个或两个参数:varstmp="rcinn.cn";使用一个参数alert(stmp.slice(3));//从第4个字符开始,截取到最后个字符;返回"nn.cn"a…

    2022年4月29日
    49
  • SCL语言(入门初级笔记)「建议收藏」

    SCL语言(入门初级笔记)「建议收藏」点动控制电机程序//点动陈序IF”点动启动”=1THEN”KM1点动”:=1;ELSE”KM1点动”:=0;END_IF;

    2022年10月7日
    2
  • word页数域代码

    word页数域代码针对MicrosoftWord使用alt+F9显示域代码,使用ctrl+F9插入域代码,注意:必须用ctrl+F9插入域代码,自己打括号无效第{page}页/总{numpages}页//本文档所有页数第{page}页/总{sectionpages}页//当前节所有页数…

    2022年6月9日
    109

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号