package com.txc.objectmapper.controller;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.txc.objectmapper.bean.Student;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.*;
@Controller
public class TestObjectMapperController {
/**
* 实现对象和JSON之间互转
*/
@RequestMapping("/jsonObjectChange")
@ResponseBody
public void jsonObjectChange() throws Exception{
ObjectMapper mapper = new ObjectMapper();
String param = "{\"stu_id\":\"1001\",\"stu_name\":\"晓春\"}";
//将字符串转换为对象
Student student = mapper.readValue(param, Student.class);
System.out.println("===json转对象==="+student.toString());
//将对象转化成JSON
String json = mapper.writeValueAsString(student);
System.out.println("===对象转json==="+json);
}
/**
* 集合和JSON相互转化
*/
@RequestMapping("/listAndJSONChange")
@ResponseBody
public void arrayToObject() throws Exception{
Student student1=new Student("1001","晓春1");
Student student2=new Student("1002","晓春2");
ObjectMapper mapper = new ObjectMapper();
//集合转json
String param = mapper.writeValueAsString(Arrays.asList(student1,student2));
System.out.println("==集合转json=="+param);
//数组json转化成集合
List<Student> list= mapper.readValue(param, List.class);
System.out.println("==数组json转集合=="+list);
}
/**
* map和json相互转化
*/
@RequestMapping("/mapAndJsonChange")
@ResponseBody
public void mapAndJsonChange() throws Exception{
ObjectMapper mapper = new ObjectMapper();
Map<String, Object> map = new HashMap<>();
map.put("id", "1001");
map.put("name","晓春");
map.put("student", new Student("6","6"));
String param = mapper.writeValueAsString(map);
System.out.println("===map转json==="+param);
Map<String, Object> resultMap = mapper.readValue(param, Map.class);
System.out.println("===json转map==="+resultMap);
}
@RequestMapping("/readTree")
@ResponseBody
public void readTree() throws Exception{
String params="{\"students\":[{\"stu_id\":\"1001\",\"stu_name\":\"十一郎\"},{\"stu_id\":\"1002\",\"stu_name\":\"十二郎\"}],\"flag\":\"1\",\"teacher\":{\"tea_id\":\"2001\",\"tea_name\":\"晓春\"}}";
ObjectMapper mapper = new ObjectMapper();
//将JSON转化成Tree
JsonNode node= mapper.readTree(params);
//得到results这个节点下的信息
JsonNode contents=node.get("students");
System.out.println(contents.get(0));
System.out.println(contents.get(0).get("stu_id"));
}
//常见问题2:属性为null,不序列化
@RequestMapping("/commonQuestion2")
@ResponseBody
public void commonQuestion1() throws Exception{
ObjectMapper mapper = new ObjectMapper();
Student student=new Student("1001",null);
//属性为null不参与序列化
mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
//将字符串转换为对象
String param= mapper.writeValueAsString(student);
System.out.println("===null值不参与序列化==="+param);
}
//objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
//常见问题4:Json字符串里数字类型值为正无穷、负无穷或NaN时
@RequestMapping("/commonQuestion10")
@ResponseBody
public void commonQuestion10() throws Exception{
ObjectMapper mapper = new ObjectMapper();
mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
String date=mapper.writeValueAsString(new Date());
//==date=="2023-11-07T12:28:36.374+00:00"
System.out.println("==date=="+date);
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
objectmapper.rar (81个子文件)
objectmapper
HELP.md 863B
pom.xml 2KB
src
test
java
com
txc
objectmapper
ObjectmapperApplicationTests.java 227B
main
resources
application.properties 1B
templates
static
java
com
txc
objectmapper
controller
TestObjectMapperController.java 4KB
ObjectmapperApplication.java 337B
bean
Student.java 213B
objectmapper.iml 8KB
.idea
jarRepositories.xml 879B
libraries
Maven__org_hamcrest_hamcrest_2_2.xml 497B
Maven__org_springframework_boot_spring_boot_starter_web_2_7_17.xml 671B
Maven__ch_qos_logback_logback_core_1_2_12.xml 554B
Maven__org_ow2_asm_asm_9_3.xml 458B
Maven__org_junit_platform_junit_platform_commons_1_8_2.xml 633B
Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_13_5.xml 681B
Maven__org_springframework_spring_jcl_5_3_30.xml 560B
Maven__org_springframework_boot_spring_boot_starter_test_2_7_17.xml 678B
Maven__jakarta_xml_bind_jakarta_xml_bind_api_2_3_3.xml 611B
Maven__net_bytebuddy_byte_buddy_agent_1_12_23.xml 585B
Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_13_5.xml 736B
Maven__org_springframework_boot_spring_boot_starter_2_7_17.xml 643B
Maven__net_minidev_accessors_smart_2_4_11.xml 563B
Maven__net_bytebuddy_byte_buddy_1_12_23.xml 543B
Maven__org_springframework_boot_spring_boot_2_7_17.xml 587B
Maven__org_xmlunit_xmlunit_core_2_9_1.xml 535B
Maven__org_apache_tomcat_embed_tomcat_embed_websocket_9_0_82.xml 660B
Maven__org_assertj_assertj_core_3_22_0.xml 542B
Maven__org_junit_jupiter_junit_jupiter_params_5_8_2.xml 615B
Maven__org_junit_platform_junit_platform_engine_1_8_2.xml 626B
Maven__org_springframework_boot_spring_boot_starter_json_2_7_17.xml 678B
Maven__org_apache_logging_log4j_log4j_to_slf4j_2_17_2.xml 608B
Maven__com_jayway_jsonpath_json_path_2_7_0.xml 546B
Maven__org_yaml_snakeyaml_1_30.xml 495B
Maven__org_springframework_spring_expression_5_3_30.xml 609B
Maven__org_springframework_spring_beans_5_3_30.xml 574B
Maven__com_fasterxml_jackson_core_jackson_core_2_13_5.xml 602B
Maven__org_junit_jupiter_junit_jupiter_api_5_8_2.xml 594B
Maven__org_springframework_spring_core_5_3_30.xml 567B
Maven__org_apache_tomcat_embed_tomcat_embed_core_9_0_82.xml 625B
Maven__org_mockito_mockito_junit_jupiter_4_5_1.xml 598B
Maven__org_slf4j_slf4j_api_1_7_36.xml 513B
Maven__org_apache_tomcat_embed_tomcat_embed_el_9_0_82.xml 611B
Maven__net_minidev_json_smart_2_4_11.xml 528B
Maven__jakarta_activation_jakarta_activation_api_1_2_2.xml 633B
Maven__org_springframework_spring_web_5_3_30.xml 560B
Maven__org_springframework_boot_spring_boot_autoconfigure_2_7_17.xml 685B
Maven__com_fasterxml_jackson_core_jackson_databind_2_13_5.xml 630B
Maven__org_springframework_spring_context_5_3_30.xml 588B
Maven__com_vaadin_external_google_android_json_0_0_20131108_vaadin1.xml 700B
Maven__org_skyscreamer_jsonassert_1_5_1.xml 537B
Maven__org_opentest4j_opentest4j_1_2_0.xml 533B
Maven__org_apiguardian_apiguardian_api_1_1_2.xml 572B
Maven__org_apache_logging_log4j_log4j_api_2_17_2.xml 573B
Maven__jakarta_annotation_jakarta_annotation_api_1_3_5.xml 633B
Maven__org_springframework_spring_aop_5_3_30.xml 560B
Maven__org_slf4j_jul_to_slf4j_1_7_36.xml 534B
Maven__org_objenesis_objenesis_3_2.xml 508B
Maven__org_springframework_spring_test_5_3_30.xml 567B
Maven__org_junit_jupiter_junit_jupiter_5_8_2.xml 566B
Maven__org_springframework_boot_spring_boot_test_2_7_17.xml 622B
Maven__org_springframework_boot_spring_boot_test_autoconfigure_2_7_17.xml 720B
Maven__org_springframework_spring_webmvc_5_3_30.xml 581B
Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_13_5.xml 695B
Maven__org_springframework_boot_spring_boot_starter_tomcat_2_7_17.xml 692B
Maven__ch_qos_logback_logback_classic_1_2_12.xml 575B
Maven__org_junit_jupiter_junit_jupiter_engine_5_8_2.xml 615B
Maven__org_mockito_mockito_core_4_5_1.xml 535B
Maven__org_springframework_boot_spring_boot_starter_logging_2_7_17.xml 699B
Maven__com_fasterxml_jackson_core_jackson_annotations_2_13_5.xml 651B
Maven__org_projectlombok_lombok_1_18_30.xml 531B
workspace.xml 3KB
misc.xml 466B
compiler.xml 891B
modules.xml 271B
.gitignore 184B
encodings.xml 270B
target
classes
application.properties 1B
com
txc
objectmapper
ObjectmapperApplication.class 765B
controller
TestObjectMapperController.class 5KB
bean
Student.class 1KB
generated-sources
annotations
.gitignore 395B
共 81 条
- 1
资源评论
雾林小妖
- 粉丝: 1w+
- 资源: 90
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功