我有一个像下面这样的JSON对象。在Java中,是否可以使用链接键从一个get调用中获取嵌套值?例如:String fname = jsonObj.get("shipmentlocation.personName.first"){ "shipmentLocation": { "personName": { "first": “firstName”, "generationalSuffix": "string", "last": "string", "middle": "string", "preferredFirst": "string", "prefix": "string", "professionalSuffixes": [ "string" ] } }, "trackingNumber": "string"}使用JSONObject类对我来说不起作用,所以我很好奇是否有替代方法可以执行此操作。谢谢!
2 回答
一只名叫tom的猫
TA贡献1906条经验 获得超3个赞
使用您提供的json,您需要经历几个层次。
String firstName = jsonObj.getJSONObject("shipmentLocation").getJSONObject("personName").getString("first");
请注意,如果您在json节点或其子节点中查找的任何字段都可能不存在,则上述内容可能会遇到一些空指针问题。在这种情况下,明智的做法是要么看一下java,要么Optional在每个步骤都使用null检查,如下所示:
String firstName = null;
JSONObject shipmentLocation = jsonObj.getJSONObject("shipmentLocation");
if (shipmentLocation != null) {
JSONObject personName = shipmentLocation.getJSONObject("personName");
if (personName != null) {
firstName = personName.getString("first");
}
}
if (firstName != null) {
// do something with the first name
}
添加回答
举报
0/150
提交
取消