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. 融合趋势下基于 Flink Kylin Hudi 湖仓一体的大数据生态体系

    简介: 本文由 T3 出行大数据平台负责人杨华和资深大数据平台开发工程师王祥虎介绍 Flink.Kylin 和 Hudi 湖仓一体的大数据生态体系以及在 T3 的相关应用场景. 本文由 T3 出行大数 ...

  2. [FE] Quasar 变通 loading 单纯使用遮罩效果的方法

    Quasar 的 loading 组件是提供加载中的遮罩效果的. 如果你不想要 loading 的效果,只想保留遮罩效果,那么你可以通过 show() 方法的参数进行调整. 把 spinnerSize ...

  3. [Go] 注意 go build -o <output> 选项的准确含义

    -o <output> 选项强制执行把构建的可执行文件写入到目标文件或者目标目录中. 如果 output 是已存在的目录,那么所有构建好的文件都将写入到该目录中. 注意:如果目录不存在的话 ...

  4. [Gin] 运行模式检测和设置 (mode.go)

    // 设置方式 gin.SetMode(gin.ReleaseMode) // 检测方式 if gin.Mode() == gin.DebugMode { } 更多相关信息,建议直接去看源代码. Re ...

  5. WPF 通过 RawInput 获取触摸消息

    触摸在 Windows 下属于比较特殊的输入,不同于键盘和鼠标,键盘和鼠标可以通过全局 Hook 的方式获取到鼠标和键盘的输入消息.而触摸则没有直接的 Hook 的方法.如果期望自己的应用,可以在没有 ...

  6. MySQL—MySQL的存储引擎之InnoDB

    MySQL-MySQL的存储引擎之InnoDB 存储引擎及种类 存储引擎 说明 MyISAM 高速引擎,拥有较高的插入,查询速度,但不支持事务 InnoDB 5.5版本后MySQL的默认数据库存储引擎 ...

  7. XPRA: SAP传输后自动运行程序

    今天了解到一个功能,允许TR导入后自动运行指定程序.比如使用VOFM创建新的例程后,需要运行RV80HGEN来重新生成程序.可以在TR中包含以下对象,则TR导入完成后,会自动运行RV80HGEN. P ...

  8. Go:基于 MongoDB 构建 REST API — Fiber 版

    本文主要在于带着大家完成一个基本的 CRUD 工作,让大家熟悉 Fiber + MongoDB 构建 RESTful API,熟悉工作流程.同时了解相关库的使用. 本文的完整代码见:https://g ...

  9. ansible(4)--ansible的command和shell模块

    1. command模块 功能:在远程主机执行 shell 命令:为默认模块,可省略 -m 选项: 注意:不支持管道命令 |: command模块的常用参数如下: 参数 说明 chdir DIR 执行 ...

  10. AIRIOT助力城市管廊工程,智慧物联守护城市生命线

    ​ 随着科技的不断革新,人工智能.大数据.物联网等新一代技术驱动的智慧城市快速发展,众多领域和行业的参随着科技的不断革新,人工智能.大数据.物联网等新一代技术驱动的智慧城市快速发展,众多领域和行业的参 ...