最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

How to modify JsonNode response in Java? - Stack Overflow

programmeradmin1浏览0评论

I need to change a JSON attribute's value in below piece of response, What is the best way to replace below imei attribute?

here is the code which i tried

String data = "{\"ctnInfo\":{\"device\":{\"devideDetails\":{\"imei\":\"1234567891011\",\"type\":\"imei\"}}},\"subscriberInfo\":{\"subscriberInfo\":{\"imei\":\"1234567891011\"}}}";
            ObjectMapper mapper = new ObjectMapper();
            JsonNode parentObj = mapper.readTree(data);

            JsonNode subscriberInfo1 = parentObj
                    .get("subscriberInfo")
                    .get("subscriberInfo");
            if (null != subscriberInfo1
                    && subscriberInfo1.hasNonNull("imei")) {
                String imei = subscriberInfo1.get("imei").asText();
                ((ObjectNode)subscriberInfo1).put("imei", "12345");
                ((ObjectNode)parentObj).put("subscriberInfo", subscriberInfo1);

                ObjectWriter writer = mapper.writer();
                String result = writer.writeValueAsString(parentObj);
                System.out.println("parent Object "+result);
            }

        }catch (Throwable t){
            t.printStackTrace();
        }

here is the json response

JsonNode apiResult =
{
  "ctnInfo": {
    "device": {
      "devideDetails": {
        "imei": "1234567891011",
        "type": "imei"
      }
    }
  },
  "subscriberInfo": {
    "subscriberInfo": {
      "imei": "1234567891011"
    }
  }
}

Expected response

JsonNode apiResult =

{
  "ctnInfo": {
    "device": {
      "devideDetails": {
        "imei": "ABC",
        "type": "imei"
      }
    }
  },
  "subscriberInfo": {
    "subscriberInfo": {
      "imei": "ABC"
    }
  }
}

I need to change a JSON attribute's value in below piece of response, What is the best way to replace below imei attribute?

here is the code which i tried

String data = "{\"ctnInfo\":{\"device\":{\"devideDetails\":{\"imei\":\"1234567891011\",\"type\":\"imei\"}}},\"subscriberInfo\":{\"subscriberInfo\":{\"imei\":\"1234567891011\"}}}";
            ObjectMapper mapper = new ObjectMapper();
            JsonNode parentObj = mapper.readTree(data);

            JsonNode subscriberInfo1 = parentObj
                    .get("subscriberInfo")
                    .get("subscriberInfo");
            if (null != subscriberInfo1
                    && subscriberInfo1.hasNonNull("imei")) {
                String imei = subscriberInfo1.get("imei").asText();
                ((ObjectNode)subscriberInfo1).put("imei", "12345");
                ((ObjectNode)parentObj).put("subscriberInfo", subscriberInfo1);

                ObjectWriter writer = mapper.writer();
                String result = writer.writeValueAsString(parentObj);
                System.out.println("parent Object "+result);
            }

        }catch (Throwable t){
            t.printStackTrace();
        }

here is the json response

JsonNode apiResult =
{
  "ctnInfo": {
    "device": {
      "devideDetails": {
        "imei": "1234567891011",
        "type": "imei"
      }
    }
  },
  "subscriberInfo": {
    "subscriberInfo": {
      "imei": "1234567891011"
    }
  }
}

Expected response

JsonNode apiResult =

{
  "ctnInfo": {
    "device": {
      "devideDetails": {
        "imei": "ABC",
        "type": "imei"
      }
    }
  },
  "subscriberInfo": {
    "subscriberInfo": {
      "imei": "ABC"
    }
  }
}
Share Improve this question edited Feb 6 at 16:08 James Z 12.3k10 gold badges27 silver badges47 bronze badges asked Feb 6 at 8:27 KrishKrish 4,23212 gold badges67 silver badges120 bronze badges 3
  • That's not valid Java code. And there's nothing related to Spring Boot in this post – knittl Commented Feb 6 at 8:55
  • @knittl, I have posted json response above need to update imei attribute – Krish Commented Feb 6 at 8:57
  • @knittl i updated post please check once? – Krish Commented Feb 6 at 9:34
Add a comment  | 

1 Answer 1

Reset to default -1
String newImeiValue = "ABC";

JsonNode deviceDetails=parentObj.get("ctnInfo").get("device").get("devideDetails");  

if(deviceDetails.hasNonNull("imei")) {               ((ObjectNode)deviceDetails).put("imei",newImeiValue);  
} 

same for subscriberInfo

发布评论

评论列表(0)

  1. 暂无评论