Мне нужно определить шаблон ввода, который проходит этот конкретный код. Я не понимаю, почему значение errormessage, хотя оно передается в виде строки, дает ноль на node.get("errorMessage").textValue()
. Пожалуйста, поддержите на том же. Игнорируйте кодировщик / декодер.
public static void main(String args[]) throws JsonProcessingException, IOException{
String err="{\"statusMessage\":\"InternalServerError\",\"status\":\"500\"}";
String errormessage="{\"errorMessage\":"+err+"}";
ByteBuffer buff=Charset.forName("UTF-8").encode(errormessage);
String response=Charset.forName("UTF-8").decode(buff).toString();
ObjectMapper mapper = new ObjectMapper();
JsonNode node = mapper.readTree(response);
try{
String errorMessageText = node.get("errorMessage").textValue();
JsonNode errorNode = mapper.readTree(errorMessageText);
String status = String.valueOf(errorNode.get("status").asInt());
String statusMessage = errorNode.get("statusMessage").textValue();
System.out.println(status);
System.out.println(statusMessage);
}
catch(Exception e){
e.printStackTrace();
}
}