原始代码:
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
public static void main(String[] args) throws JsonProcessingException {
ObjectMapper objectMapper=new ObjectMapper();
String soureJson="{\"name\":\"jack\"}";
System.out.println(soureJson);
JsonNode jsonNode = objectMapper.readTree(soureJson);
JsonNode name = jsonNode.get("name");
ObjectNode objectNode = (ObjectNode) jsonNode;
objectNode.put("name", name.toString());
String targetJson = objectNode.toString();
System.out.println(targetJson);
}
输出结果:
{"name":"jack"}
{"name":"\"jack\""}
出错代码:
解决方案:
将 toString() 改为 asText()。
改完代码:
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
public static void main(String[] args) throws JsonProcessingException {
ObjectMapper objectMapper=new ObjectMapper();
String soureJson="{\"name\":\"jack\"}";
System.out.println(soureJson);
JsonNode jsonNode = objectMapper.readTree(soureJson);
JsonNode name = jsonNode.get("name");
ObjectNode objectNode = (ObjectNode) jsonNode;
objectNode.put("name", name.asText());
String targetJson = objectNode.toString();
System.out.println(targetJson);
}
输出结果:
{"name":"jack"}
{"name":"jack"}