Json字符串转对象

json字符串

{
    "ErrorCode": 0,
    "data": {
        "A": [
            {
                "group": "A",
                "name": "安三",
                "phone": "13427682345"
            },
            {
                "group": "A",
                "name": "艾克",
                "phone": "13427682345"
            }
        ],
        "C": [
            {
                "group": "C",
                "name": "成绩",
                "phone": "13427682345"
            }
        ]
    }
}

这里只用了三行代码解决

JSONObject obj = JSONObject.parseObject(str);
String data = obj.getString("data");
Map> address = 
    JSON.parseObject(data, new TypeReference>>(){});

以下是说明

Api文档:


1565586763874.png

这里的返回值是一个泛型,我们可以指定返回的数据格式

如本题我们想要得到的数据类型为

Map>

第一个参数为json字符串,由于JSONObject的get方法返回的是一个Object类型,使用不了


1565587746809.png

这里我们使用JSONObject下的getString方法即可返回我们需要的数据,


1565587776745.png

当然你也可以用其他方法得到我们需要的字符串

第二个参数是一个匿名类

作用是创建一个你要返回的数据格式,之后json将根据你给的数据类型将字符串中的数据解析出来

实际上和下面这个方法理解起来差不多


1565588342855.png

只不过json为我们封装好了一个类,我们只需要将这个类的泛型填写一下就可以了
第三个参数我也不知道它是干嘛的,但可以省略,有知道的小伙伴可以和我交流一下

小结

用这种方法我感觉非常方便,你数据是怎么存的,它就怎么把你的数据吐出来
无论的你的数据有多复杂有几层嵌套,只要给它一个正确的数据格式,啥都不是事


你可能感兴趣的:(Json字符串转对象)