Java學習之jackson篇


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框架內容。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM