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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux 下 android studio 不能输入中文记录

    linux 下 android studio 不能输入中文记录

    2021年7月1日
    116
  • Android最常用的控件ListView(详解)

    Android最常用的控件ListView(详解)一.ListView简介在Android开发中,ListView是一个比较常用的控件。它以列表的形式展示具体数据内容,并且能够根据数据的长度自适应屏幕显示。二.ListView简单用法代码部分1.布局界面activity_main.xml代码:<?xmlversion=”1.0″encoding=”utf-8″?><LinearLayoutxmlns:android=”http://schemas.android.com/ap…

    2022年7月22日
    12
  • 2011年1月31日nod32id,nod32免费激活码_NOD32用户名密码

    2011年1月31日nod32id,nod32免费激活码_NOD32用户名密码
    用户名:EAV-40746393密码:f77rk82e7n(适用类型ESS/EAV)

    用户名:EAV-40746397密码:uj7javkt8c(适用类型ESS/EAV)

    用户名:EAV-40899369密码:bsfrudfene(适用类型ESS/EAV)

    用户名:EAV-40898530密码:mpju75r5u7(适用类型ESS/EAV)

    用户名:EAV-40746391密码:aj7urdnr6

    2022年6月16日
    57
  • Struts2中属性驱动与模型驱动

    Struts2中属性驱动与模型驱动

    2021年11月16日
    40
  • PAT考试总结(考试心得)

    pat试题总结遍历问题的总结dfs中,如果是有环的图,要设置visited数组防止绕圈,同时在dfs函数退出前要将visited数组相应设置为false,否则其他路径就不能遍历该结点;在问题中,如果要求“从一个序列中选取若干个元素来满足条件”,可以考虑dfs,如1103IntegerFactorization(30分)和7-1Forever(20分);字符串处理总结字符串处理中,注意利用sscanf,可以按照格式读取字符串中的数字,如sscanf(s,“Therootis

    2022年4月15日
    54
  • 什么是JavaBean、bean? 什么是POJO、PO、DTO、VO、BO ? 什么是EJB、EntityBean?

    什么是JavaBean、bean? 什么是POJO、PO、DTO、VO、BO ? 什么是EJB、EntityBean?前言:在Java开发中经常遇到这些概念问题,有的可能理解混淆,有的可能理解不到位,特此花了很多时间理顺了这些概念。不过有些概念实际开发中并没有使用到,可能理解还不够准确,只能靠后续不断纠正了。1、什么是POJO?POJO(PlainOldJavaObject)这种叫法是MartinFowler、RebeccaParsons和JoshMacKenzie在2000年的一…

    2022年5月28日
    69

发表回复

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

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