Json as .textValue () - Джексон - PullRequest
       5

Json as .textValue () - Джексон

0 голосов
/ 05 сентября 2018

Мне нужно определить шаблон ввода, который проходит этот конкретный код. Я не понимаю, почему значение 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();
            }

    }

1 Ответ

0 голосов
/ 05 сентября 2018

Поскольку возвращаемое значение errorMessage равно JsonNode. Итак, сначала вы получаете JsonNode, а после можете получить значения.

JsonNode errorNode = node.get("errorMessage"); 
String status = String.valueOf(errorNode.get("status").asInt()); 
String statusMessage = errorNode.get("statusMessage").textValue();

Если вы хотите получить errorMessage как string, чем вы можете попробовать:

node.get("errorMessage").toString()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...