java知识 特殊符号转换

■情况

想把代码中的出现  “  ’等特殊符号时,在他们的前面,转换时自动加 \    最后转换成json

决定用ObjectMapper这个类,先准备一个Map,之后,map作为一个参数,调用ObjectMapper的方法,就能在转换时自动加上 \

■代码

 1 import java.io.IOException;
 2 import java.util.HashMap;
 3 import java.util.Map;
 4
 5 import com.fasterxml.jackson.core.JsonParseException;
 6 import com.fasterxml.jackson.core.type.TypeReference;
 7 import com.fasterxml.jackson.databind.JsonMappingException;
 8 import com.fasterxml.jackson.databind.ObjectMapper;
 9 import com.fasterxml.jackson.databind.SerializationFeature;
10
11 public class ObjectMapperDemo {
12
13     public static void main(String args[]) throws JsonParseException, JsonMappingException, IOException {
14         ObjectMapper objectMapper = new ObjectMapper();
15         //Set pretty printing of json
16         objectMapper.enable(SerializationFeature.INDENT_OUTPUT);
17
18         //Define map which will be converted to JSON
19         Map<String, String>mapIdPerson  = new HashMap<String, String>();
20         mapIdPerson.put("id", "001");
21         mapIdPerson.put("name", "James");
22         mapIdPerson.put("age", "13");
23         mapIdPerson.put("address", "street \"18");
24
25         //1. Convert Map to JSON
26         String mapToJson = objectMapper.writeValueAsString(mapIdPerson);
27         System.out.println("1. Convert Map to JSON :");
28         System.out.println(mapToJson);
29
30         //2. JSON to Map
31         //Define Custom Type reference for map type
32         TypeReference<Map<String, String>> mapType = new TypeReference<Map<String,String>>() {};
33         Map<String,String> jsonToMap = objectMapper.readValue(mapToJson, mapType);
34         System.out.println("\n2. Convert JSON to Map :");
35
36         // Print map output using Java 8
37         // lambda expressions
38         jsonToMap.forEach((k, v) ->
39                             System.out.println(k + "=" + v));
40     }
41 }

■运行结果

 1 1. Convert Map to JSON :
 2 {
 3   "address" : "street \"18",
 4   "name" : "James",
 5   "id" : "001",
 6   "age" : "13"
 7 }
 8
 9 2. Convert JSON to Map :
10 address=street "18
11 name=James
12 id=001
13 age=13

maven的链接如下,你可以选择自己想要的jar包版本:

https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind

时间: 2024-08-05 13:57:23

java知识 特殊符号转换的相关文章

java知识查漏补缺

一.重写(override)和重载(overload)的区别 二者除了名字相似,其实没什么联系 范围不同:重写发生在同一个类的不同方法之间.重载发生在父类和子类自荐. 前提: 重写要求:方法名相同,参数列表不同,对于返回值类型不要求相同. 重载要求:方法名形同,参数列表也相同.重载是实现多态的关键,注意如果父类中的方法是private类型,那么子类中对应方法不算重载,而相当于是定义了一个新方法. 二.final的用法 修饰类:该类不能被继承 修饰方法:该方法不能被重写 修饰属性:该属性初始化后不

JAVA基本数据类型及其转换

Java语言是一种强类型语言.这意味着每个变量都必须有一个声明好的类型.Java语言提供了八种基本类型.六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型.Java另外还提供大数字对象,但它不是Java的数据类型. 1.整数: 定义:没有小数部分的数字,负数是允许的. 种类:Java提供四种整数类型: byte 1个字节(8bit) -128到127(-27~27-1)  默认为0 ,如 byte b=28; short 2个字节(16bit) -32,768到32,767(-

Java知识回顾 (11) 异常处理

距离最近的 Java知识回顾系列(10),2019.4.24日,到现在,已经近半年过去了. 感觉,做一件事情,如果有头无尾,实在不好,心里会一直悬着.所以,现在继续上面的内容. 再次声明,正如(1)中所描述的,本资料来自于runoob,略有修改. 异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的. 比如说,你的代码少了一个分号,那么运行出来结果是提示是错误 java.lang.Error. 异常发生的原因有很多,通常包含以下几大类: 用户输入了非法数据. 要打开的文

java 16进制转换10进制

public static String toHexString2(byte[] b) { StringBuffer buffer = new StringBuffer(); for (int i = 0; i < b.length; ++i) { buffer.append(toHexString2(b[i])); } return buffer.toString(); } public static String toHexString2(byte b) { char[] buffer =

Java整数和字符串转换

字符串转换整数: 虽然有类似的Integer.parseInt(),但是笔试面试明显不会如此: 转字符串可以考虑为: 1.单个字符的转换 2.权值 如:从前往后依次扫描,则每次扫描一个字符  前面数值*10: 如345,扫描3,再3*10+4,再34*10+5............ 从后往前扫描类似处理: class ParsInt{ public static void main(String[] args) { // TODO, add your application code Syst

java 知识收集

1,若方法传入的对象参数为空,则在方法中改变参数并不会改变声明的对象 public void setList(List<String> list){ list = new ArrayList<String>() ; } @Test public void t4(){ List<String> list = null ; setList(list); System.out.println(list );//输出 null } 2,不要再foreach遍历的时候删除 jav

java String和Date转换

SimpleDateFormat函数语法:    G 年代标志符  y 年  M 月  d 日  h 时 在上午或下午 (1~12)  H 时 在一天中 (0~23)  m 分  s 秒  S 毫秒  E 星期  D 一年中的第几天  F 一月中第几个星期几  w 一年中第几个星期  W 一月中第几个星期  a 上午 / 下午 标记符   k 时 在一天中 (1~24)  K 时 在上午或下午 (0~11)  z 时区 */ DateFormat format1 = new SimpleDate

Java数组与列表转换的java.lang.ClassCastException

Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.Integer; at com.bupt.acm.test.TestArrayList.main(TestArrayList.java:12) ava.lang.ClassCastException是进行强制类型转换的时候产生的异常,强制类型转换的前提是父类引用指向的对象的类

java中调用kettle转换文件

java中调用kettle转换文件 通过命令行也可以调用,然后java中调用命令行代码也可以:这样没有和java代码逻辑无缝集成.本文说明kettle5.1中如果通过其他API和java代码无缝集成:网上大多数资料都是低版本的,在kettle5.x中已经不能运行. 1.       需要哪些jar文件 以kettle开头的是必须,上图最下面三个也要:红色框中的两个是我测试转换用到的,分别是生成UUID和文件. 要是少了jar文件,运行程序一定报错,大家根据错误到kettle安装目录LIB中找相应