java中jackson含义_Java中Jackson的用法

0.添加依赖

com.fasterxml.jackson.core

jackson-databind

2.11.2

1.实体类

package com.cat.domain;

public class Person {

public String name;

public String sex;

public int age;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getSex() {

return sex;

}

public void setSex(String sex) {

this.sex = sex;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

@Override

public String toString() {

return "Person{" +

"name='" + name + '\'' +

", sex='" + sex + '\'' +

", age=" + age +

'}';

}

}

2. list转json

我们写一个test类或者在Controller中直接构造,本文是使用的是直接在Controller中调用。

package com.cat.controller;

import com.cat.domain.Person;

import com.fasterxml.jackson.databind.ObjectMapper;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.ResponseBody;

import org.springframework.web.servlet.ModelAndView;

import java.io.IOException;

import java.util.ArrayList;

import java.util.List;

@Controller

@RequestMapping(produces="text/html;charset=UTF-8")

public class IndexController {

List PersonList =new ArrayList<>();

//返回json格式

@RequestMapping(value = "/hello2" )

@ResponseBody

public Object hello2() throws IOException {

Person Person4 = new Person();

Person Person5 = new Person();

Person Person6 = new Person();

Person4.name ="王晓红";

Person5.name ="王晓绿";

Person6.name ="王晓蓝";

Person4.age =13;

Person5.age =14;

Person6.age =16;

Person4.sex ="男";

Person5.sex ="女";

Person6.sex ="男";

PersonList.add(Person4);

PersonList.add(Person5);

PersonList.add(Person6);

System.out.println(PersonList);

ObjectMapper mapper = new ObjectMapper();

String str = mapper.writeValueAsString(PersonList);

System.out.println(str);

return str;

}

}

可以看出,控制台中输出了两端,第一段是list对象,第二段是json格式。

59ec7c9845e03196a555952e34c7bc55.png

3.json转对象(反序列化)

我们这次自己编写一个类用来测试。

import com.cat.domain.Person;

import com.fasterxml.jackson.databind.ObjectMapper;

import java.util.Arrays;

import java.util.List;

public class main {

public static void main(String[] args) throws Exception {

String json = "[{\"name\":\"王晓红\",\"sex\":\"男\",\"age\":13},{\"name\":\"王晓绿\",\"sex\":\"女\",\"age\":14},{\"name\":\"王晓蓝\",\"sex\":\"男\",\"age\":16}]";

ObjectMapper mapper = new ObjectMapper();

// json 转数组对象

Person[] person = mapper.readValue(json,Person[].class);

for(Person person1:person)

System.out.println(person1);

}

}

5ad095ba4bf40394d6e1c85ea2a741dd.png

4.json转List(反序列化)

import com.cat.domain.Person;

import com.fasterxml.jackson.databind.ObjectMapper;

import java.util.Arrays;

import java.util.List;

public class main {

public static void main(String[] args) throws Exception {

String json = "[{\"name\":\"王晓红\",\"sex\":\"男\",\"age\":13},{\"name\":\"王晓绿\",\"sex\":\"女\",\"age\":14},{\"name\":\"王晓蓝\",\"sex\":\"男\",\"age\":16}]";

ObjectMapper mapper = new ObjectMapper();

// json 转List对象

List person2 = Arrays.asList(mapper.readValue(json,Person[].class));

System.out.println(person2);

}

}

264951f17bb2873ac8683f5e2829a2cb.png

返回目录:开发与教程

Post Views:

212

jackson所需要的所有jar jackson-all-1.6.2.jar jackson-core-asl-1.6.2.jar jackson-mapper-asl-1.6.2.jar jakarta-oro.jar 1. 背景 目前维护的产品使用jackson处理json,现整理一下jackson相关资料,希望对初次接触jackson的新手有所帮助。 jackson主页: http://jackson.codehaus.org/ jackson document: http://wiki.fasterxml.com/JacksonJavaDocs JacksonInFiveMinutes: http://wiki.fasterxml.com/JacksonInFiveMinutes 本文主要内容译自JacksonInFiveMinutes,增加了部分示例,转载请注明出处。 受java平台上各种处理xml的类库(StAX, JAXB等)启发,Jackson提供一种处理json的java类库。Jackson的目标是为开发者提供快速、准确、轻量级和用起来最爽的json处理类库。本文将概括介绍Jackson的主要功能和相关功能的使用示例。 2. 使用方式 Jackson提供三种可选的json处理方式: 1) Streaming API 又称Incremental parsing/generation, 受StAX API启发,以非关联递增方式读写json内容。 通过 org.codehaus.jackson.JsonParser读取,通过org.codehaus.jackson.JsonGenerator写入。 2) Tree Model 通过基于内存的树形结构来描述json数据,和 XML DOM类似。通过org.codehaus.jackson.map.ObjectMapper构建树,树由JsonNode节点组成。 3) Data Binding 基于属性访问或注解的方式将json和POJO对象互相转换, 受JAXB基于注解的处理方式启发。通过org.codehaus.jackson.map.ObjectMapper读写json数据。它包含两种类型: 3.1 Simple Data Binding 用于json和Java Maps, Lists, Strings, Numbers, Booleans and nulls的相互转换。 3.2 Full Data Binding 用于json和Java Bean的相互转换。 下面从使用的角度上比较三种处理方式: Streaming API 执行效率最高,读写速度最快,另外两种方式都基于它实现; Tree Model 是最灵活的; Data Binding 通常是最方便使用的;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值