我正在使用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)