小编123*_*789的帖子

org.codehaus.jackson.JsonParseException:无效的UTF-8中间字节0xdf

我正在使用jackson框架在JSON和Java之间编组和解组数据.一切都运作良好,只要输入不包含任何字符,如:

  • ö
  • 一个
  • ü
  • Ö
  • 一个
  • Ü
  • ß

对于我尝试的输入数据:

String jsonData = "{\"id\":1,\"street\":\"Straße\",\"number\":\"1c\",\"zipCode\":1111,\"city\":\"MyCity\"}";
Run Code Online (Sandbox Code Playgroud)

以及:

String jsonData = "{\"id\":1,\"street\":\"Stra\u00DFe\",\"number\":\"1c\",\"zipCode\":1111,\"city\":\"MyCity\"}";
Run Code Online (Sandbox Code Playgroud)

并且我一直得到同样的例外.

从json数据到java实体对象的映射是通过以下方式完成的:

/*
 * Convert stream to data entity
 */
ObjectMapper m = new ObjectMapper();
T entity = (T) m.readValue(stringToStream(jsonData), readableClass);
Run Code Online (Sandbox Code Playgroud)

我还执行了一个json数据验证,它可以像预期的那样工作,也可以使用上面的字符.

如何处理这些数据?

更新 这些是MessageBodyReader班级的重要部分

@Override
public T readFrom(Class<T> type, Type genericType,
        Annotation[] annotations, MediaType mediaType,
        MultivaluedMap<String, String> httpHeaders, InputStream entityStream)
        throws IOException, WebApplicationException {

    final String jsonData = getStringFromInputStream(entityStream);
    System.out.println(jsonData);

    InputStream isSchema = new FileInputStream(jsonSchemaFile);
    String jsonSchema = getStringFromInputStream(isSchema); …
Run Code Online (Sandbox Code Playgroud)

json jackson

10
推荐指数
1
解决办法
2万
查看次数

标签 统计

jackson ×1

json ×1