如何使用 jackson 2 写入原始字符串

How to write to raw string with jackson 2

我想将对象写入原始 json 字符串。例如我有一个 class

class Tiger{
    String name;
    int age;
}

Tiger tiger = new Tiger("red", 12);

然后我用jackson的ObjectMapper写成string

ObjectMapper objectMapper = new ObjectMapper();
String result = objectMapper.writeValueAsString(tiger);

结果是:

 "{"name":"red","age":12}"

但我想将对象写入原始 json 字符串,如下所示:

"{\"name\":\"red\",\"age\":12}"

我知道我们可以创建一个函数,通过添加“\”将普通字符串转换为原始字符串,但我想知道是否有更好的解决方案?

您可以再次将输出写为 json,这将使其转义:

String result = objectMapper.writeValueAsString(
                      objectMapper.writeValueAsString(tiger));
//outputs: "{\"name\":\"red\",\"age\":12}"

在这里你可以找到解决方案

String result ="";
        try {
            result = objectMapper.writeValueAsString(objectMapper.writeValueAsString(tiger));
        } catch (JsonProcessingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        System.out.println(result);