Java + jackson解析错误Unrecognized character escape

标签 java json jackson http-post parse-error

我需要做一个 POST json 字符串,使用 HttpClient。以下将是我的代码。从另一端 Json 被映射到一个对象。

HttpClient client = HttpClientBuilder.create().build();
HttpPost post = new HttpPost(url);
String jsonData = "{ \"provider\" : null , \"password\" : \"a\", \"userid\" : \"mlpdemo\\mlpdemoins\" }";
post.setEntity(new ByteArrayEntity(         jsonData.toString().getBytes("UTF8")));
HttpResponse response = client.execute(post);

这里所有其他人都正确映射期望 userId。这里的问题在于反斜杠 (mlpdemo\mlpdemins)。我猜。如果我发送一个字符串作为用户 ID,它将被毫无问题地映射。 例如:-

String jsonData = "{ \"provider\" : null , \"password\" : \"a\", \"userid\" : \"mlpdemoins\" }";

这行得通。

但我需要通过 POSt 发送这个 (mlpdemo\mlpdemins)。请帮帮我。

String jsonData = "{ \"provider\" : null , \"password\" : \"a\", \"userid\" : \"mlpdemo\\mlpdemoins\" }";

这是我遇到的异常。

com.fasterxml.jackson.core.JsonParseException: Unrecognized character escape 'm' (code 109)
 at [Source: java.io.InputStreamReader@29f0a0a2; line: 1, column: 62]
BadRequestException (0ea35150-f33a-4932-a31e-8a1048af53ad): 400 Bad Request, com.strategicgains.restexpress.serialization.DeserializationException: com.fasterxml.jackson.core.JsonParseException: Unrecognized character escape 'm' (code 109)
 at [Source: java.io.InputStreamReader@29f0a0a2; line: 1, column: 62]
    at com.strategicgains.restexpress.Request.getBodyAs(Request.java:165)
    at com.strategicgains.restexpress.Request.getBodyAs(Request.java:181)

最佳答案

设置你的映射器

mapper.configure(JsonParser.Feature.ALLOW_BACKSLASH_ESCAPING_ANY_CHARACTER, true); 

关于Java + jackson解析错误Unrecognized character escape,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30187530/

相关文章:

java - 使用自定义消息捕获和处理 Jackson 异常

java - XML - 使用 DOM 解析元数据属性

java - 当他访问网站并以用户语言显示页面时,如何在jsp页面中获取用户语言环境

java - java 8 中要映射的对象数组列表

arrays - Delphi-如何从字符串数组创建JSON数组?

java - 在标量值上使用文字样式,以通过 Jackson 进行 YAML 序列化

java - ObjectMapper.readValue 可以返回空值吗?

java - Spring,使用 POST 重定向到外部 url

ruby-on-rails - Rails 允许嵌套哈希属性

json - 如何使用 Hive (get_json_object) 或 json serde 查询结构数组