我想驗證一個簡單的JSON正文使用傑克遜,我在那裏存儲JSON請求作爲「dataJson」變量中的字符串。例外:「org.codehaus.jackson.map.JsonMappingException:不能反序列化的實例java.lang.String出START_OBJECT令牌」
public void unmarshal(InputStream is) throws Exception {
// this will contain my actual json string
String dataJson= StUtil.toString(is);
System.out.println(dataJson);
//parse json string
String response = objectMapper.readValue(dataJson, String.class);
System.out.println(response);
}
SUtil.toString(InputStream爲)方法:
public static String toString(final InputStream is) {
final BufferedReader br = new BufferedReader(new InputStreamReader(is));
final StringBuffer buffer = new StringBuffer();
try {
for (String line; (line = br.readLine()) != null;) {
buffer.append(line);
}
} catch (IOException ioe) {
}
return buffer.toString();
}
我使用傑克遜學習驗證的一部分,但它拋出的錯誤/異常上線
String response = objectMapper.readValue(dataJson, String.class);
及以下是我得到的例外 -
Exception: "org.codehaus.jackson.map.JsonMappingException: Can not deserialize instance of java.lang.String out of START_OBJECT token"
我想知道我在做什麼錯。任何幫助,將不勝感激。
JSON請求:
{"username" : "my_username","password" : "my_password","validation-factors":{"validationFactors":[{"name":"remote_address","value":"127.0.0.1"}]}}