package com.example.demo;

import com.example.pojo.User;
import com.fasterxml.jackson.annotation.JsonView;
import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner; import java.util.Date;
import java.util.List; /**
* ObjectMapper Json字符串的转换处理
*/
@RunWith(SpringRunner.class)
@SpringBootTest
public class JsonTest {
@Autowired
ObjectMapper mapper; public static class User{
private String userName2;
private int age;
private String password;
private Date birthday; public User() {
} public User(String userName2) {
this.userName2 = userName2;
} public String getUserName2() {
return userName2;
} public void setUserName2(String userName2) {
this.userName2 = userName2;
} public int getAge() {
return age;
} public void setAge(int age) {
this.age = age;
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
} public Date getBirthday() {
return birthday;
} public void setBirthday(Date birthday) {
this.birthday = birthday;
}
} @Test
public void test() throws Exception{
//对象转JSON
User user = new User();
user.setUserName2("lily");
user.setAge(26);
user.setPassword("123456");
user.setBirthday(new Date());
System.out.println(user.getClass().getDeclaredClasses());
String json = mapper.writeValueAsString(user);
System.out.println("json=" + json); //JSON串获取数据
String json2 = "{\"name\":\"lily\",\"age\":26}";
JsonNode node = this.mapper.readTree(json2);
String name = node.get("name").asText();
int age = node.get("age").asInt();
System.out.println("姓名=" + name + " ,年龄=" + age); //JSON串转对象
//com.fasterxml.jackson.databind.JsonMappingException: Can not construct instance of com.example.demo.JsonTest$User: can only instantiate non-static inner class by using default, no-argument constructor
// at [Source: {"userName":"lily"}; line: 1, column: 2]
// 方案 userName2跟对象的字段名称保持一致 public static class User{ | 内部类修改为static
String json3 = "{\"userName2\":\"lily\"}";
JsonTest obj = new JsonTest(); //public class User{ | 非静态的方式
// JsonTest.User user4 = new JsonTest.User();
// JsonTest.User user5 = obj.new User();
// System.out.println("user4=" + user4); //静态
JsonTest.User user6 = new JsonTest.User();
System.out.println("user6=" + user6); JsonTest.User user2 = mapper.readValue(json3, User.class);
String name2 = user2.getUserName2();
int age2 = user2.getAge();
System.out.println("姓名=" + name2 + " ,年龄=" + age2); //JSON串转LIST集合
String jsonStr = "[{\"userName2\":\"lily\",\"age\":26},{\"userName2\":\"scott\",\"age\":27}]";
JavaType type = mapper.getTypeFactory().constructParametricType(List.class, User.class);
List<User> list = mapper.readValue(jsonStr, type);
String msg = "";
for (User user3 : list) {
msg += " " + user3.getUserName2();
}
System.out.println("姓名=" + msg); }
}

ObjectMapper Json字符串的转换处理的更多相关文章

  1. Android项目开发全程(四)-- 将网络返回的json字符串轻松转换成listview列表

    前面几篇博文介绍了从项目搭建到获取网络字符串,对一个项目的前期整体工作进行了详细的介绍,本篇接着上篇介绍一下怎么样优雅将网络返回的json字符串轻松转换成listview列表. 先上图,看一下效果. ...

  2. JSON字符串自动转换

    package com.zkn.newlearn.json; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObj ...

  3. JAVA中使用alibaba fastjson实现JSONObject、Object、Json字符串的转换

    JAVA中使用alibaba fastjson实现JSONObject.Object.Json字符串的转换 Object转JSON字符串:String jsonStr = JSONObject.toJ ...

  4. C# 对象与JSON字符串互相转换的三种方式

    C# 对象与JSON字符串互相转换的三种方式 JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式. 关于内存对象和JSON字符串的相互转换, ...

  5. JSON字符串互相转换的三种方式和性能比较

    C# 对象与JSON字符串互相转换的三种方式 JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式. 关于内存对象和JSON字符串的相互转换, ...

  6. Java实现JSONObject对象与Json字符串互相转换

    Java实现JSONObject对象与Json字符串互相转换 JSONObject 转 JSON 字符串 Java代码: JSONObject jsonObject = new JSONObject( ...

  7. Java对象与Json字符串的转换

    Java对象与Json字符串的转换 JSON是一种轻量级的数据交换格式,常用于前后端的数据交流 后端 : 前端 Java对象 > JsonString Java对象 < jsonStrin ...

  8. js-jquery-对象与JSON字符串互相转换

    1:jQuery插件支持的转换方式 代码如下: String→Object$.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符串转 ...

  9. Json序列化与反序列化(对象与Json字符串的转换)--C#

    public class JsonHelper { #region Json序列化与反序列化 /// <summary> /// 将json转化为对象 /// (需要提前构造好结构一致的M ...

  10. JAVA中JSON字符串格式转换

    alibabab版本  即com.alibaba.fastjson *以下Node为实体类 //JSON字符串->Map Map map1 = (Map)JSON.parse(strJson); ...

随机推荐

  1. Jaeger插件开发及背后的思考

    ​简介: 本文主要介绍Jaeger最新的插件化后端的接口以及开发方法,让大家能够一步步的根据文章完成一个Jaeger插件的开发.此外SLS也推出了对于Jaeger的支持,欢迎大家试用. 随着云原生 + ...

  2. 解决 System.Net.Sockets.SocketException 10106 无法加载或初始化请求的服务提供程序 无法联网

    本文收集 System.Net.Sockets.SocketException 异常错误码为 10106 导致无法联网的问题 这里的 10106 是 Win32 的 Socket 错误码,可以从 Wi ...

  3. xtrabackup备份恢复

    tar -xzvf percona-xtrabackup-2.1.9-744-Linux-x86_64.tar.gz cd percona-xtrabackup-2.1.9-Linux-x86_64/ ...

  4. 012_DRC检查与处理

    Check entire design:DRC检查整个原理图: Check Selection:DRC检查选择的部分电路: Use occurrences:选择所有事件进行检查: Use instan ...

  5. 如何实现一个简单易用的 RocketMQ SDK

    2018 年,做为架构负责人,接到一个架构需求:实现一个简单易用的 RocketMQ SDK . 因为各个团队 RocketMQ 原生客户端配置起来千奇百怪,有的配置存在风险,各团队负责人都需要一个简 ...

  6. Go-Zero技能提升:深度探究goctl的妙用,轻松应对微服务开发挑战!(三)

    前言 有位同学在群里说:"Go-Zero官方文档太简洁了,对小白有点不友好.好奇你们是怎么学习的?项目是怎么封装的?有什么提高开发效率的技巧吗?". 来来来,这期内容给你安排上,先 ...

  7. ruby执行周期性任务 whenever

    ruby执行周期性任务 下面看看怎么将任务写入cron服务. $ whenever #不带参数的whenever会显示转换程cron任务的代码,不写入cron任务表 $ whenever -w #写入 ...

  8. 使用beego/bee热启动gin框架

    目录 1.需要关闭gomod 2.安装 bee 3.再开启gomod 4.启动服务 效果: 1.需要关闭gomod export GO111MODULE=off 2.安装 bee go get -u ...

  9. FFmpeg开发笔记(二十)Linux环境给FFmpeg集成AVS3解码器

    ​AVS3是中国AVS工作组制定的第三代音视频编解码技术标准,也是全球首个已推出的面向8K及5G产业应用的视频编码标准.AVS工作组于2019年3月9日完成第三代AVS视频标准(AVS3)基准档次的制 ...

  10. python openstacksdk

    调用方法 参考地址 https://github.com/openstack/openstacksdk 注意事项 1.需要安装openstacksdk.我这里装的好像是1.5版本的.opentask接 ...