精华内容
下载资源
问答
  • 获取数组形式的json数据

    千次阅读 2014-06-14 18:31:58
    我将如下格式的json数据称为数组形式的json数据(以括号开始和结束):

    我将如下格式的json数据称为数组形式的json数据(以中括号开始和结束):

    [
        {
            "aqi": 151,
            "area": "广州",
            "pm2_5": 106,
            "pm2_5_24h": 115,
            "quality": "中度污染",
            "time_point": "2013-04-16T11:00:00Z"
        }
       {
            "aqi": 100,
            "area": "北京",
            "pm2_5": 188,
            "pm2_5_24h": 193,
            "quality": "重度污染",
            "time_point": "2013-04-16T11:00:00Z"
        }
    ]

    我们在前两篇博文中讲了普通json数据的获取以及解析的办法,这里的json如何解析呢。
    首先建立类PM,包括相应的成员。获取json的方法就不再赘述了,详见“android中使用Gson解析普通json数据
    解析json之前,先声明全局变量:

    private Gson mGson;// 导入谷歌的Gson的jar包。
                       //该包可以在“android中使用Gson解析普通json数据”博文中获取
    List<PM> pmList;
    private static PM pm;//声明PM类的对象

    获取json数据之后的解析函数非常的简单:

            // 使用Gson解析Json之PM。这里传入的是json的数据串。
    	private static void pmWeatherInfo(String result) {
    		Gson mGson = new Gson();
    		List<PM> pmList = mGson.fromJson(result, new TypeToken<List<PM>>() {
    		}.getType());
    		pm = pmList.get(0);//将json中的值对应赋给pm对象中的属性
    	}

    其中使用pmList.get(0)可获得解析出来的第一组json数据,同理pmList.get(1)获得json数组中的第二组json数据(解析之后的)。


    展开全文
  • MySQL中JSON数据获取值 1.MySQL中JSON数据中获取值 数据源: { "observeTruth": "111", "preventHumenError": "DLYZ", "twoIndex": "502", "evaluate": "S" } sql语句: SELECT OBSERVE_TRUTH->'$**....

    MySQL中JSON数据获取值

    1.MySQL中JSON数据中获取值
    
    数据源:
    {
    	"observeTruth": "111",
    	"preventHumenError": "DLYZ",
    	"twoIndex": "502",
    	"evaluate": "S"
    }
    
    sql语句:
    SELECT 
    	OBSERVE_TRUTH->'$**.twoIndex' as twoIndexJson 
    FROM 
    	PAS_OPERATION_MANAGEMENT_SCORE 
    WHERE 
    	ID = 'a4dad016562642c0ae1466f4a7456d35'
    

    执行结果:
    在这里插入图片描述

    2.MySQL中数组内的JSON数据中获取值
    
    数据源:
    [
    	{
    	"observeTruth": "能力打分",
    	"preventHumenError": "DLYZ",
    	"twoIndex": "401",
    	"evaluate": "△"
    	},
    	 {
    	"observeTruth": "222",
    	"preventHumenError": "DLYZ",
    	"twoIndex": "502",
    	"evaluate": "S"
    	}
    ]
    
    sql语句:
    SELECT 
    	JSON_EXTRACT(OBSERVE_TRUTH, '$.twoIndex') as twoIndexJson 
    from 
    	PAS_OPERATION_MANAGEMENT_SCORE 
    WHERE 
    	ID = 'd35ae7966436458a959a569935007e0a'
    

    执行结果:
    在这里插入图片描述

    展开全文
  • 如何在springmvcHttpMessageConverter转换器中获取泛型参数具体类型

    需求

    在一个成绩管理系统中,有实体类Score和实体类Student,现需要对这两个实体类关联的数据库表分别进行批量插入,因而需要处理两种不同的JSON数据(均为数组形式),并转换为相应的List。在两种实体类http请求中,Student类中的成员变量与对应json数据格式的一致,而Score类中的成员变量则与相应http请求中的json数据格式则不一致,因此需要在转型的过程中进行自定义的操作。

    分析

    对于Student类,可以直接用springmvc提供的MappingJackson2HttpMessageConverter转换器进行类与json字符串之间的转换,对于Score类,则需要自定义转换器。自定义转换器我能想到的有两种方式:
    一丶实现HttpMessageConverter接口
    二丶继承MappingJackson2HttpMessageConverter类并对其功能进行扩展
    在现在这种情况下,方式一实际上是行不通的,因为springmvc在选择转换器时,是通过转换器类中的canRead方法来进行判断的,放上两种方式中实际调用的canRead方法的签名:
    实现HttpMessageConverter接口时:
    boolean canRead(Class< ? > aClass, MediaType mediaType)
    继承MappingJackson2HttpMessageConverter类时:
    boolean canRead(Type type, Class< ? > aClass, MediaType mediaType)
    可以看到两个方法的参数并不一样,对于第一种方式,转型的目的java对象类型信息(此处为List< Score >)存放于Class< ? > aClass中,该变量只能记录List擦除后的信息,无法记录List中持有对象的类型(只知道是List而不知道是持有什么类型的List),因而无法为springmvc对转换器的选择提供准确的判断信息;而对于第二种方式,Type type中存放了所有相关的详细信息(包括List的泛型信息),因而可行。

    实验

    接下来向

    发送请求体为json格式的数据请求,springmvc会选择相应的转换器进行处理,看看两种方式下springmvc对转换器的处理情况:

    第一种方式,注册实现了HttpMessageConverter接口的转换器:

    当springmvc调用该转换器的canRead方法时可以看到如下结果:
    这里写图片描述

    第二种方式,注册继承了MappingJackson2HttpMessageConverter类的转换器:

    当springmvc调用该转换器的canRead方法时可以看到如下结果:

    那么为什么springmvc为两种方式下转换器的canRead方法传递的参数不同呢?springmvc主要在下面的方法中对转换器进行判断并调用:

    注册继承了MappingJackson2HttpMessageConverter类的转换器,对该方法进行断点调试:
    这里写图片描述
    注册实现了HttpMessageConverter接口的转换器,对该方法进行断点调试:

    结论

    springmvc根据表达式converter instanceof GenericHttpMessageConverter进行判断,并为不同的转换器converter提供不同的参数。实现了HttpMessageConverter接口的转换器不是GenericHttpMessageConverter的导出类型,因此其canRead方法无法获取具体的泛型类型信息,不适用于包含泛型类型的转型;MappingJackson2HttpMessageConverter或其子类是GenericHttpMessageConverter的导出类型,因而适用于包含泛型类型的转型。判断结束后springmvc会调用转换器中的Read方法,将请求体中的json字符串转换为相应的List集合并返回。

    ps:开始我用的是实现了HttpMessageConverter接口的转换器,百度上很多人说仅通过class对象就能获取相应的泛型类型信息,就像下面这样:

            List<Long> longs = new ArrayList<Long>();
            //目标class对象
            Class c = longs.getClass();
            //若c对应的对象继承了泛型类
            ParameterizedType type = (ParameterizedType) c.getGenericSuperclass();
            //若c对应的对象实现了(多个)泛型接口
            //ParameterizedType[] type = (ParameterizedType[]) c.getGenericInterfaces();
            //输出其泛型参数类型
            System.out.println(type.getActualTypeArguments()[0]);

    但其输出结果为:E
    E表示的是ArrayList直接父类的泛型类型(此处仅为一占位符),因此我认为通过这种方式,只能获取到目标class对象的直接父类(或者其所实现接口)的泛型类型信息,无法获取class对象本身的泛型类型信息。
    以上均为本人通过调试或者查资料所得出的结论,若大家发现有不对的地方,希望能够及时指出,对此我表示万分感谢!

    展开全文
  • BeanShell遍历JSON双重嵌入数组获取数组数据 1.概述 今天做接口自动化场景测试过程遇到一个比较复杂场景,创建新建订单业务,接口参数依赖未占用资讯类型。开发提供了一个所有资讯查询接口,该接口返回JSON类型...

    BeanShell遍历JSON双重嵌入数组获取数组数据

    1.概述

    今天做接口自动化场景测试过程中遇到一个比较复杂的场景,创建新建订单业务,接口参数依赖未占用资讯类型。开发提供了一个所有资讯查询接口,该接口返回JSON类型数据,该数据分为两大类型,每个类型都是一个数组,形成了嵌套数组。
    需求点分析:
    获取未占用的资讯类型ID传给新建订单接口,创建订单业务。
    实现方式分析:
    第一种方式:查询mysql数据库,获取资讯,难度简单,效率高,(数据只存储在mogodb中,平台不支持该数据库查询)、
    第二种方式:调用资讯查询接口,获取资讯数据,遍历双层数组获取数据,通过判断选择我们的数据。难度较高。
    可行方案选择:
    第一种方案是最优的方案,但是由于平台暂时不支持链接mogodb数据库,无法实现。只能使用第二种方案。

    2.资讯接口返回数据

    {
        "code":234,
        "data":[
            {
                "mediaItems":[
                    {
                        "categoryId":234234234234234,
                        "categoryName":"新华每日电讯",
                        "isUsed":true,
                        "platform":"xinhuanet",
                        "topName":"时政类"
                    },
                    {
                        "categoryId":234234234234234,
                        "categoryName":"参考消息",
                        "isUsed":true,
                        "platform":"xinhuanet",
                        "topName":"时政类"
                    },
                    {
                        "categoryId":234234234234234,
                        "categoryName":"新华社半月谈",
                        "isUsed":true,
                        "platform":"xinhuanet",
                        "topName":"时政类"
                    },
                    {
                        "categoryId":234234234,
                        "categoryName":"新华军事",
                        "isUsed":true,
                        "platform":"xinhuanet",
                        "topName":"时政类"
                    },
                    {
                        "categoryId":234234234,
                        "categoryName":"人事任免",
                        "isUsed":true,
                        "platform":"xinhuanet",
                        "topName":"时政类"
                    },
                    {
                        "categoryId":234234234,
                        "categoryName":"直通中纪委",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"时政类"
                    },
                    {
                        "categoryId":234234234,
                        "categoryName":"新华社港澳台",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"时政类"
                    },
                    {
                        "categoryId":234234234234234234234,
                        "categoryName":"政策简牍",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"时政类"
                    },
                    {
                        "categoryId":234234234234234234234,
                        "categoryName":"中国聚焦",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"时政类"
                    },
                    {
                        "categoryId":234234234234234,
                        "categoryName":"法制",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"时政类"
                    },
                    {
                        "categoryId":234234234234234,
                        "categoryName":"图解新闻",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"时政类"
                    },
                    {
                        "categoryId":234234234234234,
                        "categoryName":"早读",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"时政类"
                    },
                    {
                        "categoryId":234234234234234,
                        "categoryName":"夜读",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"时政类"
                    },
                    {
                        "categoryId":234234234234234234234,
                        "categoryName":"资讯",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"时政类"
                    },
                    {
                        "categoryId":234234234234234234,
                        "categoryName":"文件发布",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"时政类"
                    },
                    {
                        "categoryId":234234234234234234,
                        "categoryName":"权威解读",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"时政类"
                    }
                ],
                "parentCategoryName":"时政类"
            },
            {
                "mediaItems":[
                    {
                        "categoryId":234234234,
                        "categoryName":"新华体育",
                        "isUsed":true,
                        "platform":"xinhuanet",
                        "topName":"生活类"
                    },
                    {
                        "categoryId":234234234,
                        "categoryName":"汽车",
                        "isUsed":true,
                        "platform":"xinhuanet",
                        "topName":"生活类"
                    },
                    {
                        "categoryId":234234234234234234,
                        "categoryName":"摄影世界",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"生活类"
                    },
                    {
                        "categoryId":234234234234234234,
                        "categoryName":"科技",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"生活类"
                    },
                    {
                        "categoryId":234234234234234234234,
                        "categoryName":"新华旅游",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"生活类"
                    },
                    {
                        "categoryId":234234234234234234234,
                        "categoryName":"学习时间",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"生活类"
                    },
                    {
                        "categoryId":234234234234234234234,
                        "categoryName":"新华文化",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"生活类"
                    },
                    {
                        "categoryId":234234234234234234234,
                        "categoryName":"中年名牌",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"生活类"
                    },
                    {
                        "categoryId":234234234234234234234,
                        "categoryName":"读书",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"生活类"
                    },
                    {
                        "categoryId":234234234234234234234,
                        "categoryName":"公益",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"生活类"
                    },
                    {
                        "categoryId":234234234234234234234,
                        "categoryName":"预警信息",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"生活类"
                    },
                    {
                        "categoryId":234234234234234234234,
                        "categoryName":"天气",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"生活类"
                    },
                    {
                        "categoryId":234234234234234234234,
                        "categoryName":"地震速报",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"生活类"
                    },
                    {
                        "categoryId":234234234234234234234234234,
                        "categoryName":"时尚先风",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"生活类"
                    },
                    {
                        "categoryId":234234234234234234234234234,
                        "categoryName":"时尚现场",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"生活类"
                    },
                    {
                        "categoryId":234234234234234234234234234,
                        "categoryName":"时尚图片",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"生活类"
                    },
                    {
                        "categoryId":234234234234234234234234234234234,
                        "categoryName":"时尚视频",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"生活类"
                    },
                    {
                        "categoryId":234234234234234,
                        "categoryName":"中国名酒",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"生活类"
                    },
                    {
                        "categoryId":234234234234234,
                        "categoryName":"熊猫",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"生活类"
                    },
                    {
                        "categoryId":234234234234234234234234234,
                        "categoryName":"学习",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"生活类"
                    },
                    {
                        "categoryId":234234234234234,
                        "categoryName":"AI合成主播",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"生活类"
                    },
                    {
                        "categoryId":234234234234234,
                        "categoryName":"影视",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"生活类"
                    },
                    {
                        "categoryId":234234234234234,
                        "categoryName":"新青年",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"生活类"
                    },
                    {
                        "categoryId":234234234234234,
                        "categoryName":"双语金句",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"生活类"
                    },
                    {
                        "categoryId":234234234234234,
                        "categoryName":"学习故事",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"生活类"
                    }
                ],
                "parentCategoryName":"生活类"
            },
            {
                "mediaItems":[
                    {
                        "categoryId":234234234234234,
                        "categoryName":"瞭望",
                        "isUsed":true,
                        "platform":"xinhuanet",
                        "topName":"国际类"
                    },
                    {
                        "categoryId":234234234234234,
                        "categoryName":"环球",
                        "isUsed":true,
                        "platform":"xinhuanet",
                        "topName":"国际类"
                    },
                    {
                        "categoryId":234234234234234,
                        "categoryName":"cnc视频",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"国际类"
                    },
                    {
                        "categoryId":234234234,
                        "categoryName":"新华国际",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"国际类"
                    },
                    {
                        "categoryId":234234234234234,
                        "categoryName":"瞭望东方周刊",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"国际类"
                    },
                    {
                        "categoryId":234234234,
                        "categoryName":"瞭望智库",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"国际类"
                    }
                ],
                "parentCategoryName":"国际类"
            },
            {
                "mediaItems":[
                    {
                        "categoryId":234234234234234,
                        "categoryName":"经济参考报",
                        "isUsed":true,
                        "platform":"xinhuanet",
                        "topName":"金融类"
                    },
                    {
                        "categoryId":234234234234234,
                        "categoryName":"中国证券报",
                        "isUsed":true,
                        "platform":"xinhuanet",
                        "topName":"金融类"
                    },
                    {
                        "categoryId":234234234234234,
                        "categoryName":"上海证券报",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"金融类"
                    },
                    {
                        "categoryId":234234234234234,
                        "categoryName":"现代金报",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"金融类"
                    },
                    {
                        "categoryId":234234234,
                        "categoryName":"财经分析",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"金融类"
                    },
                    {
                        "categoryId":234234234,
                        "categoryName":"财经国家周刊",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"金融类"
                    },
                    {
                        "categoryId":234234234234,
                        "categoryName":"中国金融信息网",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"金融类"
                    },
                    {
                        "categoryId":234234234234,
                        "categoryName":"中国金融信息中心",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"金融类"
                    },
                    {
                        "categoryId":234234234234234234234234234,
                        "categoryName":"新华财经",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"金融类"
                    },
                    {
                        "categoryId":234234234234234234234,
                        "categoryName":"财经周评",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"金融类"
                    },
                    {
                        "categoryId":234234234234234234234,
                        "categoryName":"北京财经",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"金融类"
                    },
                    {
                        "categoryId":234234234234234234234,
                        "categoryName":"财经",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"金融类"
                    },
                    {
                        "categoryId":234234234234234,
                        "categoryName":"商业哲学",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"金融类"
                    },
                    {
                        "categoryId":234234234234234234234234234,
                        "categoryName":"财富",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"金融类"
                    },
                    {
                        "categoryId":234234234234234234234,
                        "categoryName":"企业家精神",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"金融类"
                    },
                    {
                        "categoryId":234234234234234234234,
                        "categoryName":"商亦载道",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"金融类"
                    },
                    {
                        "categoryId":234234234234234234234,
                        "categoryName":"商业文化",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"金融类"
                    },
                    {
                        "categoryId":234234234234234,
                        "categoryName":"区块链",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"金融类"
                    },
                    {
                        "categoryId":234234234234234,
                        "categoryName":"中国金币",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"金融类"
                    }
                ],
                "parentCategoryName":"金融类"
            },
            {
                "mediaItems":[
                    {
                        "categoryId":234234234,
                        "categoryName":"新华社中国网事",
                        "isUsed":true,
                        "platform":"xinhuanet",
                        "topName":"社会类"
                    },
                    {
                        "categoryId":234234234,
                        "categoryName":"新华社思客",
                        "isUsed":true,
                        "platform":"xinhuanet",
                        "topName":"社会类"
                    },
                    {
                        "categoryId":234234234,
                        "categoryName":"新视频",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"社会类"
                    },
                    {
                        "categoryId":234234234234,
                        "categoryName":"新华出版社",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"社会类"
                    },
                    {
                        "categoryId":234234234234234234,
                        "categoryName":"社会",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"社会类"
                    },
                    {
                        "categoryId":234234234234234234,
                        "categoryName":"评论",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"社会类"
                    },
                    {
                        "categoryId":234234234234234234,
                        "categoryName":"房产",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"社会类"
                    },
                    {
                        "categoryId":234234234234234234234,
                        "categoryName":"热点鲜报",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"社会类"
                    },
                    {
                        "categoryId":234234234234234234234,
                        "categoryName":"一图读懂",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"社会类"
                    },
                    {
                        "categoryId":234234234234234234234,
                        "categoryName":"新华影像",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"社会类"
                    },
                    {
                        "categoryId":234234234234234234234,
                        "categoryName":"现场云",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"社会类"
                    },
                    {
                        "categoryId":234234234234234234234234234,
                        "categoryName":"人物访谈",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"社会类"
                    },
                    {
                        "categoryId":234234234234234234234,
                        "categoryName":"中国之美",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"社会类"
                    },
                    {
                        "categoryId":234234234234234,
                        "categoryName":"短视频",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"社会类"
                    },
                    {
                        "categoryId":234234234234234,
                        "categoryName":"国搜数据观",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"社会类"
                    },
                    {
                        "categoryId":234234234234234234234,
                        "categoryName":"解读中国",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"社会类"
                    },
                    {
                        "categoryId":234234234234234,
                        "categoryName":"热聊",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"社会类"
                    },
                    {
                        "categoryId":234234234234234,
                        "categoryName":" 234234后看世界",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"社会类"
                    },
                    {
                        "categoryId":234234234234234,
                        "categoryName":"微视频",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"社会类"
                    },
                    {
                        "categoryId":234234234234234234234,
                        "categoryName":"微热点",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"社会类"
                    },
                    {
                        "categoryId":234234234234234,
                        "categoryName":"e查到底",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"社会类"
                    },
                    {
                        "categoryId":234234234234234,
                        "categoryName":"杂谈",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"社会类"
                    },
                    {
                        "categoryId":234234234234234234234234,
                        "categoryName":"新华印记",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"社会类"
                    },
                    {
                        "categoryId":234234234234234234,
                        "categoryName":"快看",
                        "isUsed":false,
                        "platform":"xinhuanet",
                        "topName":"社会类"
                    }
                ],
                "parentCategoryName":"社会类"
            }
        ],
        "message":"成功"
    }
    

    3.BeanShell脚本遍历JSON双重数组

    数据分析结果
    查看资讯接口返回的数据,我们对数据进行分析,data是一个数组结构,数组是由JsonObject对象构成,在JsonObject对象里面是mediaItems数组结构,该数组也是由JsonObject对象构成。
    数据结构图形
    data[数组{JsonObject[数组{JsonObject}]}]
    遍历数据思路
    1.JsonObject类型数据转为JSONArray(数组类型)
    2.遍历data数组,获取数组中JsonObject数据
    3.从data每个数组中JsonObject数据中获取mediaItems第二层数组,并转为JSONArray(数组类型)
    4.遍历mediaItems数组数据
    5.从mediaItems数组获取数据,并转为JsonObject类型
    6.根据mediaItems获取是否被占用状态进行判断,取出没有占用的数据保存到变量,传给创建订单接口。

    import org.json.*;
    
    public static void isVal() {
    
         String response_data = prev.getResponseDataAsString();
         JSONObject data_obj = new JSONObject(response_data);
        //  log.info("data_array===" + data_obj);
         //1.JsonObject类型数据转为JSONArray(数组类型)
         JSONArray data_array = data_obj.getJSONArray("data");
         
         //2.遍历data数组,获取数组中JsonObject数据
         for(int i=0;i<data_array.length();i++) {
             log.info("data_for===" + data_array.get(i));
    
    		//3.从data每个数组中JsonObject数据中获取mediaItems第二层数组,并转为JSONArray(数组类型)
             JSONArray mediaItems_arr = data_array.get(i).getJSONArray("mediaItems");
    
    		//4.遍历mediaItems数组数据
             for(int j=0; j<mediaItems_arr.length(); j++) {
             	//5.从mediaItems数组获取数据,并转为JsonObject类型
                 Boolean isUserTrue = ((JSONObject)mediaItems_arr.get(j)).get("isUsed");
                 String topName = ((JSONObject)mediaItems_arr.get(j)).get("topName");
                 //6.根据mediaItems获取是否被占用状态进行判断,取出没有占用的数据保存到变量,传给创建订单接口。
                 if(!isUserTrue) {
                    log.info(topName + ",咨询分类下,没有使用过的媒体类型isUserFalse===" + isUserTrue);
                    if(topName.equals("时政类")) {
                      String categoryId = ((JSONObject)mediaItems_arr.get(j)).get("categoryId").toString();
                      log.info(topName + ",添加咨询ID:" + categoryId); 
                      vars.put("media_shizheng", categoryId);
                    } else if(topName.equals("生活类")) {
                      String categoryId = ((JSONObject)mediaItems_arr.get(j)).get("categoryId").toString();
                      log.info(topName + ",添加咨询ID:" + categoryId); 
                      vars.put("media_shenghuo", categoryId);    
                    } else if(topName.equals("国际类")) {
                      String categoryId = ((JSONObject)mediaItems_arr.get(j)).get("categoryId").toString();
                      log.info(topName + ",添加咨询ID:" + categoryId); 
                      vars.put("media_guoji", categoryId);    
                    } else if(topName.equals("金融类")) {
                      String categoryId = ((JSONObject)mediaItems_arr.get(j)).get("categoryId").toString();
                      log.info(topName + ",添加咨询ID:" + categoryId); 
                      vars.put("media_jinrong", categoryId);
                    } else if(topName.equals("社会类")) {
                      String categoryId = ((JSONObject)mediaItems_arr.get(j)).get("categoryId").toString();
                      log.info(topName + ",添加咨询ID:" + categoryId); 
                      vars.put("media_shehui", categoryId);
                    } else {
                      log.info("没有数据"); 
                    }
                    break;
                 }
                
             }
            
         }
    }
    
    isVal();
    
    

    4.测试脚本

    调用获取资讯接口,查看控制台输出的日志,展示未占用资讯ID保存为变量。

    在这里插入图片描述

    展开全文
  • jQuery 获取json 嵌套数组中的数据

    千次阅读 2018-10-21 11:02:48
    jQuery 获取json 嵌套数组中的数据 代码 最近在学习使用echarts需要用到json,走过无数坑爹路…… 其实思路特别简单 但就是没有好好观察给的json数据规律 耗费了好多时间T T //1.json中的数据: //{ // &quot;...
  • 比如:获取以下数据的data中的数据 { "message": "successful", "resultCode": "0", "data": [ { "data1": "012001600111", "data2"...
  • //单条数组aValpid在Object列表是否存在key值所对应的数据 JSONObject hashVP = (JSONObject) hash.get(aVal.get(pid).toString()); //如果存在,则说明这条aVal有父节点,将它添加到孩子节点集合...
  • $data_string = json_encode($newArray); </code></pre> <p><img src="https://i.stack.imgur.com/1lEfs.png" alt="HERE IS THE IMAGE"></p> <p><a href=...
  • <p>But in my case, the JSON is like this <pre><code>[car] => stdClass Object ( [field_set_key="profile",username="sammy"] => stdClass Object ( [year] => 2018 [company] => Honda ...
  • <p>I want to retrieve the values from <code>json</code> multidimensional array and I wanted to compare the <code>id</code> from each table. But using $each</code> loop I am not able to do it. Is there...
  • JSON数组JSON对象在vue中的获取

    万次阅读 2018-05-11 15:46:16
    这两天在学习vue,主要是为了实现前后端分离,...在这个截图(截了好几次才完美截下),红框部分是从API获取数据,中间语法等我们也在以后再讨论。 我发现照着这个模板来做话,可以正常获取数据,然而...
  • js获取json字段里头的对象,在以json数据的格式添加到新的数组中使用 你好! 这是我第一次记录和伙伴遇到的小问题,有更好的方法请多指教 比如下面这一段,我从这里截取的json数据 var json={"code":0,"count":1000,...
  • echo json_enocde($data); <p>In JavaScript the returned value is named response. I need to display the values and tried like this after reading about json: alert("First: " + response.first + " ...
  • <p>Got the output result in json nested array. <p>Help to access the <strong>USER-id</strong> of this json format . <pre><code>var result = { "USER": { "id": "11456", "email": "g@gmail.com", ...
  • 在我应用程序,我正在通过.aspx页面上ajax调用获取Json数据。...<p>data.Table.length返回1且循环仅运行一次,我不知道如何获取json数据中对象数组的长度,以便循环可以持续到结束。 请帮帮我! </div>
  • 获取json中的数组

    2021-01-12 18:27:12
    json数据如下: { "code": 200, "msg": "OK", "data": [ "3148120404262382", "1443363211304208", "4322133941384257", "225715105299077", "0130535842122221", "013132461720341", "084219211914673...
  • 对象数组通过FastJSON转成JSON数组,但是前台ajax收到数据遍历变成了一个一个字符,不能通过下标获取整个对象数组了。   解决办法:在前端ajax回调函数加上 var jsons = JSON.parse( data ); 后台代码如下...
  • 例如数据: let arr = [ { name: '小明', value: '2', type: '1' }, { name: '小明', value: '3', type: '1' }, { name: '小刚', value: '3', type: '1' }, { name: '笔本', value: '2', type: '1' }, { name...
  • 于是就深入查了一下,原来PHP默认只识别application/x-www.form-urlencoded标准的数据类型,因此,对型如text/xml 或者 soap 或者 application/octet-stream 之类内容无法解析,如果用$_POST数组来接收就会失败...
  • ajax请求的json数据获取的对象数组中,每个对象的属性顺序是怎么排的,这个排序的依据是什么呢 ? 如图中描述的,我两种json数据,第一种和第二种区别就是前者的每个对象中后三个属性都加了一个文字**“年”**,...
  • 定义json数组获取数据

    千次阅读 2018-10-01 21:39:33
    创造一个json数组存放json数组list中的goodsName、goodsNum、goodsPrice var cartList=[];//存放json数组 var cart={//json对象 goodsName:"", goodsNum:"", goodsPrice:"" }; ...
  • JavaScript with JSON. I am a begginer and I am not finding any solution. <p>I get this error in developers tool: <p>Access to XMLHttpRequest at '...
  • <p>I am newbie in this thing, i have searched on internet but not work for me, maybe someone can give me solution to get data from two array from json encode <pre><code><?php session_start(); ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 988
精华内容 395
关键字:

获取数组中的json数据