alibaba.fastjson.JSONObject.parseObject的使用

alibaba.fastjson.JSONObject.parseObject的使用fastjson是一个性能很好的Java语言实现的JSON解析器和生成器,当你要处理一段接收的json数据,就可以考虑使用JSONObject.parseObjectimportcom.alibaba.fastjson.JSONObject;parseObject(Stringstr)的作用JSON.parseObject(Stringstr)是将str转化为相应的JSONObject对象,其中str是“键值对”形式的json字符串,转化为JSONObject对象之后就可以使用其内置

大家好,又见面了,我是你们的朋友全栈君。

fastjson 是一个性能很好的 Java 语言实现的 JSON 解析器和生成器,当你要处理一段接收的json数据,就可以考虑使用JSONObject.parseObject

import com.alibaba.fastjson.JSONObject;

parseObject(String str)的作用

JSON.parseObject(String str)是将str转化为相应的JSONObject对象,其中str是“键值对”形式的json字符串,转化为JSONObject对象之后就可以使用其内置的方法,进行各种处理了。

json字段
{ 
   
    "code":0,
    "data":{ 
   
        "city":{ 
   
            "cityId":284609,
            "counname":"中国",
            "ianatimezone":"Asia/Shanghai",
            "name":"东城区",
            "pname":"北京市",
            "secondaryname":"北京市",
            "timezone":"8"
        },
        "liveIndex":{ 
   
            "2021-03-17":[
                { 
   
                    "code":5,
                    "day":"2021-03-17",
                    "desc":"天气较好,路面干燥,交通气象条件良好,车辆可以正常行驶。",
                    "level":"1",
                    "name":"交通指数",
                    "status":"良好",
                    "updatetime":"2021-03-17 06:24:03"
                },
                { 
   
                    "code":14,
                    "day":"2021-03-17",
                    "desc":"天气较好,但丝毫不会影响您出行的心情。温度适宜又有微风相伴,适宜旅游。",
                    "level":"1",
                    "name":"旅游指数",
                    "status":"适宜",
                    "updatetime":"2021-03-17 06:24:03"
                }
            ]
        }
    },
    "msg":"success",
    "rc":{ 
   
        "c":0,
        "p":"success"
    }
}
{ 
   
    "code":0,
    "data":{ 
   
        "aqi":{ 
   
            "cityName":"东城区",
            "co":"8",
            "coC":"0.8",
            "no2":"28",
            "no2C":"56.0",
            "o3":"2",
            "o3C":"6.0",
            "pm10":"160",
            "pm10C":"270.0",
            "pm25":"73",
            "pm25C":"53.0",
            "pubtime":"1615939200000",
            "rank":"527/678",
            "so2":"1",
            "so2C":"3.0",
            "value":"160"
        },
        "city":{ 
   
            "cityId":284609,
            "counname":"中国",
            "ianatimezone":"Asia/Shanghai",
            "name":"东城区",
            "pname":"北京市",
            "secondaryname":"北京市",
            "timezone":"8"
        }
    },
    "msg":"success",
    "rc":{ 
   
        "c":0,
        "p":"success"
    }
}
String json = EntityUtils.toString(response.getEntity());
JSONObject jsonObject = JSONObject.parseObject(json);
JSONObject date = jsonObject.getJSONObject("data");
JSONObject liveIndex = date.getJSONObject("liveIndex");
for (Map.Entry<String, Object> entry : liveIndex.entrySet()) { 
   
    JSONArray jsonArray = liveIndex.getJSONArray(entry.getKey());
    for (Object object : jsonArray) { 
   
        JSONObject object1 = (JSONObject) object;
        String name = object1.getString("code");
        String level = object1.getString("level");
        hashMap.put(name,level);
    }
}
String json = EntityUtils.toString(response.getEntity());
JSONObject jsonObject = JSONObject.parseObject(json);
JSONObject data = jsonObject.getJSONObject("data");
JSONObject api = data.getJSONObject("aqi");
String pm25C = api.getString("pm25C");

JSON.parseObject(String str)与JSONObject.parseObject(String str)的区别

根据源码显示:JSON是一个抽象类,JSON中有一个静态方法parseObject(String text),将text解析为一个JSONObject对象并返回;JSONObject是一个继承自JSON的类,当调用JSONObject.parseObject(result)时,会直接调用父类的parseObject(String text)。所以两者没什么区别,一个是用父类去调用父类自己的静态的parseObject(String text),一个是用子类去调用父类的静态parseObject(String text),两者调的是同一个方法。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/158783.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • pycharm设置远程调试_调试助听器需要什么配置的电脑

    pycharm设置远程调试_调试助听器需要什么配置的电脑条件pycharm需要专业版方式使用远程解释器 使用远程调试器使用远程解释器默认情况下我们在本地开发Python程序时,使用的是本地的Python解释器,如果你安装了virtualenv或者pyenv的话,还可以选择这些虚拟环境。而使用Pycharm的专业版,则还可以选择使用远程Linux机器上的解释器。下面就来介绍下使用远程解释器的步骤。 远程部署配置远程部署主要用…

    2022年8月29日
  • 报错sqlSessionFactory「建议收藏」

    报错sqlSessionFactory「建议收藏」Exceptionencounteredduringcontextinitialization-cancellingrefreshattempt:org.springframework.beans.factory.BeanCreationException:Errorcreatingbeanwithname’sqlSessionFactory’definedinclasspathresource[applicationContext.xml]:Invocation

    2022年5月1日
  • UML 包图

    UML 包图什么是包包可直接理解为命名空间,文件夹,是用来组织图形的封装,包图可以用来表述功能组命名空间的组织层次。•在面向对象软件开发的视角中,类显然是构建整个系统的基本构造块。但是对于庞大的应用系统而言,其包

    2022年8月1日
  • Java课程设计源码——学生信息管理系统 SQL「建议收藏」

    Java课程设计源码——学生信息管理系统 SQL「建议收藏」packageshujuku;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjava.util.*;importjava.sql.*;importjavax.swing.table.*;classallstudentextendsJFrameimplementsAct…

    2022年10月15日
  • Python fillna_pandas fillna 指定列

    Python fillna_pandas fillna 指定列对我来说工作:df.ix[df[‘Type’]==’Dog’,’Killed’]=df.ix[df[‘Type’]==’Dog’,’Killed’].fillna(2.25)print(df)TypeKilledSurvived0Dog5.0021Dog3.0042Cat1.0073Dog2.2534cowNaN2如果系列需要fillna–因…

    2022年8月12日
  • Linux的vi命令用法大全_linux top命令详解

    Linux的vi命令用法大全_linux top命令详解vi共分为三种模式:分别是一般模式,编辑模式与命令行模式一般模式:以vi打开一个文件就直接了一般模式(这是默认的模式)编辑模式:在指令模式下输入的按键“i,I,o,O,a,A,r,R”,vi即认为是在当前位置插入字符。而在输入模式下,vi则把输入的按键当作插入的字符来处理。指令模式切换到输入模式只需键入相应的输入命令即可(如a,A),而要从输入模式切换到指令模式,则需在输入模式下键入…

    2022年9月22日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号