首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Json as .textValue( )-Json

Json as .textValue( )-Json
EN

Stack Overflow用户
提问于 2018-09-05 21:21:28
回答 1查看 980关注 0票数 0

我需要的是识别通过此特定代码的输入模式。我不明白为什么errormessage的值,尽管它是以字符串的形式传递的,但在node.get("errorMessage").textValue()上却是空的。请使用same.Ignore编码器/解码器。

代码语言:javascript
复制
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();
            }

    }
EN

回答 1

Stack Overflow用户

发布于 2018-09-05 21:42:47

因为errorMessage的返回值是JsonNode。所以你首先得到JsonNode,然后你就可以得到值了。

代码语言:javascript
复制
JsonNode errorNode = node.get("errorMessage"); 
String status = String.valueOf(errorNode.get("status").asInt()); 
String statusMessage = errorNode.get("statusMessage").textValue();

如果你想以string的形式获得errorMessage,你可以尝试:

代码语言:javascript
复制
node.get("errorMessage").toString()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52186206

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档