为了账号安全,请及时绑定邮箱和手机立即绑定

如果没有放置新值,则检查 JSONObject 是否包含嵌套值

如果没有放置新值,则检查 JSONObject 是否包含嵌套值

神不在的星期二 2021-06-18 15:19:20
我正在使用Jackson 2.6.5.我有以下 JSON:{       "field1":        {            "innerField1":"innervalue"        },    "field2":"value"}我按如下方式阅读了 JSON:JSONObject jsonObj = new JSONObject(jsonString);我想检查我是否jsonObj包含嵌套值,我尝试的是:if(!jsonObj.has("field1.innerField1"))//Trying to append if not exist如果该值不存在来附加它,我正在尝试的是:jsonObj.put("field1.innerField1","innervalue");但它对我不起作用(has总是包含false并put创造一个新的价值,比如field1.innerField1.valueinstaed netsted 价值,那么如何检查 JSON 是否包含嵌套值,如果不附加它呢?
查看完整描述

3 回答

?
桃花长相依

TA贡献1860条经验 获得超8个赞

密钥field1包含 json 对象。所以您需要使用密钥读取 JSONObject,field1然后使用所需的密钥检查是否存在。试试这个:


String jsonString = "{   \n" +

            "    \"field1\":\n" +

            "        {\n" +

            "            \"innerField1\":\"innervalue\"\n" +

            "        },\n" +

            "\n" +

            "    \"field2\":\"value\"\n" +

            "}";

    JSONObject jsonObj = new JSONObject(jsonString);

    JSONObject innerJson = jsonObj.getJSONObject("field1");

    if(!innerJson.has("innerField1")){

        innerJson.put("innerField1","innervalue");

    }


查看完整回答
反对 回复 2021-06-30
?
喵喔喔

TA贡献1735条经验 获得超5个赞

 JSONObject jsonObj= new JSONObject(jsonString);

if(jsonObj.has("innerField1")){

//do something

}

else{

     jsonObj.put("innerField1","innervalue");

}


查看完整回答
反对 回复 2021-06-30
  • 3 回答
  • 0 关注
  • 187 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信