在Java中从JSONObject检索单个元素

在Java中从JSONObject检索单个元素,java,json,Java,Json,我有一个JSONObject,我想从中检索各个元素。我能够获取标题值,但无法获取单个元素。以下是我的JSON请求: JSON请求: {"Context":{"HealthCloudIndividual":{"Id":"41cb7f2c-a3a7-4a31-80fa-ce43102f5650","EffectiveDate":2004}},"Metadata":{"schemaVersion":"v1","publishTimestamp":2005,"eventType":"Individual

我有一个
JSONObject
,我想从中检索各个元素。我能够获取标题值,但无法获取单个元素。以下是我的JSON请求:

JSON请求:

{"Context":{"HealthCloudIndividual":{"Id":"41cb7f2c-a3a7-4a31-80fa-ce43102f5650","EffectiveDate":2004}},"Metadata":{"schemaVersion":"v1","publishTimestamp":2005,"eventType":"IndividualEmailVerification","docTimestamp":2007},"Publisher":{"Application":{"Desc":"ABCD","Code":"EFGHIJKL"}},"Profile":{"Email":"abc@xyz.com","FirstName":"John","LastName":"Doe","Prefix":"Mr.","Key":{"Key2":"Value2","Key1":"Value1","Key6":"Value6","Key5":"Value5","Key4":"Value4","Key3":"Value3","Key7":"Value7"}}}
我需要检索
Profiles
标记中的元素:

Profiles ::{"Email":"abc@xyz.com","FirstName":"John","LastName":"Doe","Prefix":"Mr.","Key":{"Key2":"Value2","Key1":"Value1","Key6":"Value6","Key5":"Value5","Key4":"Value4","Key3":"Value3","Key7":"Value7"}}
我的Java类:

    JSONObject jo = new JSONObject(message.getPayload().toString());
    LOG.info("JSON Request: {}", jo);
    LOG.info("Profiles ::" + jo.get("Profile"));

    ObjectMapper objectMapper = new ObjectMapper();


    Map<?, ?> map = objectMapper.readValue(message.getPayload().toString(), Map.class);

    for (Map.Entry<?, ?> entry : map.entrySet()) {
        LOG.info("Map Values:::::" + entry.getKey() + "=" + entry.getValue());
        LOG.info("Map Profile Values:::::" + entry.getValue());

        if (entry.getKey().toString().contains("Profile.FirstName")) {
            LOG.info("FirstName::::" + entry.getValue().toString());
        }
    }
JSONObject jo=newjsonobject(message.getPayload().toString());
info(“JSON请求:{}”,jo);
LOG.info(“Profiles::”+jo.get(“Profile”);
ObjectMapper ObjectMapper=新的ObjectMapper();
Map Map=objectMapper.readValue(message.getPayload().toString(),Map.class);
对于(Map.Entry:Map.entrySet()){
LOG.info(“映射值:”+entry.getKey()+“=”+entry.getValue());
LOG.info(“映射配置文件值::”+entry.getValue());
if(entry.getKey().toString()包含(“Profile.FirstName”)){
LOG.info(“FirstName::”+entry.getValue().toString());
}
}

这个代码不起作用。有什么建议吗?

我可以通过以下方法了解各个元素:

Map mp1=新的HashMap()

mp1=(Map)entry.getValue()

Hm,到
Map
的映射实际有效吗?它不是例外地失败了吗?你得到的地图内容是什么?这是我运行后的输出:2020-02-11 12:23:52.177信息28386---[ntainer#0-0-C-1]:地图配置文件值::{FirstName=John,LastName=Doe,Prefix=Mr.,Email=abc@xyz.com,Key={Key2=Value2,Key1=Value1,Key6=Value6,Key5=Value5,Key4=Value4,Key3=Value3,Key7=Value7}}将此标记为答案并结束问题。。否则,人们仍然会试图回答这个问题。