猿问

使用Java中的链接键获取嵌套的JSON值

我有一个像下面这样的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类对我来说不起作用,所以我很好奇是否有替代方法可以执行此操作。谢谢!


慕桂英3389331
浏览 205回答 2
2回答

一只名叫tom的猫

使用您提供的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}
随时随地看视频慕课网APP

相关分类

Java
我要回答