首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Java中使用fastjson解析json数据方法

Java中使用fastjson解析json数据方法

作者头像
吃猫的鱼Code
发布2023-02-02 11:02:04
发布2023-02-02 11:02:04
1.5K0
举报

上一篇文章当中,写了关于Java中使用fastjson创建json数据方法,这篇文章写写java中使用fastjson解析json数据的方法。

首先,老样子,还是需要先导入fastjson的jar包,这个jar包可以从百度上搜索然后下载,下载后导入就可以正常使用了。(导包的时候注意要使用alibaba为名的)

使用fastjson解析json数据的方法

第一种方法

第一步:

先将String 类型转换成jsonObject类型。

处理代码如下:

代码语言:javascript
复制
//首先定义一个String类型的数据,用力模拟发送过来的json数据。
String jsonStr = "{\"msg\":\"ok\",\"code\":200,\"data\":[{\"id\":1,\"userName\":\"fish1\",\"userPsw\":\"123456\"},{\"id\":2,\"userName\":\"fish2\",\"userPsw\":\"123456\"}]}";
//string 转换成jsonObject类型
JSONObject jsonObject = JSONObject.parseObject(jsonStr);

第二步:

如果只要输出json中的单个键值的数据,直接使用get方法即可。

例如:

代码语言:javascript
复制
int code = jsonObject.getInteger("code");
String msg = jsonObject.getString("msg");

第三步:

要是需要将data中的数组集合解析出来,需要将其赋新值为json数组。然后再从json数组中通过get类型()方法提取出具体的键值。

具体代码如下:

代码语言:javascript
复制
JSONArray data = jsonObject.getJSONArray("data");
for(int i=0;i

完整代码呈现:

代码语言:javascript
复制
public static void main(String[] args){
        String jsonStr = "{\"msg\":\"ok\",\"code\":200,\"data\":[{\"id\":1,\"userName\":\"fish1\",\"userPsw\":\"123456\"},{\"id\":2,\"userName\":\"fish2\",\"userPsw\":\"123456\"}]}";
        //string 转换成jsonObject类型
        JSONObject jsonObject = JSONObject.parseObject(jsonStr);
//        int code = (int) jsonObject.get("code");
        int code = jsonObject.getInteger("code");
        String msg = jsonObject.getString("msg");
        //下面将data的集合解析出来
        JSONArray data = jsonObject.getJSONArray("data");

        for(int i=0;i

第二种方法

 第二种方法相对第一种方法会更加简洁,但是需要新建一个类去储存数据。(注意,这里类中的data的数据是基于另一个User类)

第一步:

将String类型的json数据先做一个解析,但是这次解析和上次不一样,这次是将json数据解析成一个类的json结果集。

注意:这个类的变脸名字需要和json数据上面的键值一样,否则无法进行对象的新建

代码呈现:

代码语言:javascript
复制
//同样,先新建一个json数据,用于后面接受前面的数据。
String jsonStr = "{\"msg\":\"ok\",\"code\":200,\"data\":[{\"id\":1,\"userName\":\"fish1\",\"userPsw\":\"123456\"},{\"id\":2,\"userName\":\"fish2\",\"userPsw\":\"123456\"}]}";
JsonResult result = JSONObject.parseObject(jsonStr,JsonResult.class);
//第一个是String 类型的json数据,后面哪个是用于创建对象的类

第二步:

然后就可以通过上面新建的result对象进行访问数据了。

代码语言:javascript
复制
//输出“ok”
System.out.println(result.getMsg());

输出data集合中的数据

代码语言:javascript
复制
//将获取到的data集合赋值新建对象
List userData = result.getData();
System.out.println(userData.get(1).getUserName());

完整代码展示:

代码语言:javascript
复制
    public static void main(String[] args){
        String jsonStr = "{\"msg\":\"ok\",\"code\":200,\"data\":[{\"id\":1,\"userName\":\"fish1\",\"userPsw\":\"123456\"},{\"id\":2,\"userName\":\"fish2\",\"userPsw\":\"123456\"}]}";
        //string 转换成jsonObject类型
        JsonResult result = JSONObject.parseObject(jsonStr,JsonResult.class);
        System.out.println(result.getMsg());

        //将获取到的data集合赋值新建对象
        List userData = result.getData();
        System.out.println(userData.get(1).getUserName());
      //输出fish2
    }

本文共 502 个字数,平均阅读时长 ≈ 2分钟

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用fastjson解析json数据的方法
  • 第一种方法
  • 第二种方法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档