在公司接手的项目碰到这么一个表,里面有一列数据保存的是JSON字符串。如果说这一列是一些配置数据,不需要应用到筛选和过滤,只是跟着主键去获得的数据,那你这么做并没有什么不妥。但事实是,这一列需要检索和过滤数据,这**居然是遍历全表,再把json数据转换成对象去遍历匹配。我服了,你咋这么能呢?喜欢这样玩为什么当初不用MongoDB?查了一下文档,知道Oracle 在12C之后有对JSON数据的操作方法,网上关于这部分的文章非常非常非常少(毕竟没几个人会把oracle当成MongoDB这么地**是吧),就整理一下,方便自己以后查看。
(资料图片)
有一说一这官方文档非常地硬,啃了好久都啃不动,而且很多理想当然的用法都不行。Oracle中关于JSON的操作函数有JSON_ARRAY
、JSON_EXISTS
、JSON_VALUES
、JSON_TABLE
、JSON_QUERY
,其中JSON_ARRAY
是用来构建JSON数组的,而不是用来查找结果的。在文中也会小篇幅简单说一下用法。
JSON_EXISTS是一个SQL函数,用于判断是否存在符合条件的JSON数据。它可以在WHERE子句中使用,用于筛选JSON列中符合特定条件的数据。
官方给出的语法是这样的:
JSON_EXISTS(json_column, json_path_expression, [returning_clause])
其中,json_column是指要查询的JSON列,json_path_expression是指JSON路径表达式,用于指定要查找的JSON数据的位置和条件。
JSON路径表达式中可以使用各种操作符和函数,以及通配符和其他特殊字符。例如:
$
: 表示根元素.
: 表示当前元素[*]
: 表示匹配数组中的所有元素[]
: 表示过滤数组中符合条件的元素@
: 表示当前元素的属性
在json_path_expression中,可以使用一些函数,如JSON_VALUE、JSON_QUERY、JSON_TABLE等来处理JSON数据。例如:
JSON_VALUE(json_column, "$.name"): 返回json_column列中name字段的值JSON_QUERY(json_column, "$.name"): 返回json_column列中address字段的值JSON_TABLE(json_column, "$.hobbies[*]" COLUMNS (phone_number VARCHAR2(20) PATH "$")): 返回json_column列中phones数组中的所有元素的phone_number字段的值返回值:
如果符合条件的JSON数据存在,则返回TRUE;否则返回FALSE。如果使用returning_clause子句,则返回符合条件的JSON数据。
例如:
SELECT * FROM my_table WHERE JSON_EXISTS(json_data, "$.name");
这个例子查询my_table表中json_data列中是否存在name字段的值。如果存在,返回TRUE,否则返回FALSE。
JSON_ARRAY
是一个 Oracle SQL 函数,用于创建一个 JSON 数组。下面是使用 JSON_ARRAY
的一些示例:
语法:
JSON_ARRAY(value1 [, value2] [, value3] ...);
其中,value1
, value2
, value3
等是一个或多个要添加到 JSON 数组的值。这些值可以是任何有效的 SQL 值,例如字符串、数字、日期、布尔值等。如果没有指定任何值,JSON_ARRAY
将生成一个空的 JSON 数组。
创建一个包含两个字符串值的 JSON 数组
SELECT JSON_ARRAY("apple", "orange") FROM dual;
输出结果:
["apple", "orange"]
创建一个包含两个数字值的 JSON 数组
SELECT JSON_ARRAY(10, 20) FROM dual;
输出结果:
[10, 20]
创建一个包含多个元素的 JSON 数组
SELECT JSON_ARRAY("apple", 10, TRUE) FROM dual;
输出结果:
["apple", 10, true]
在上述示例中,JSON_ARRAY
函数接受一个或多个参数,并将它们作为一个 JSON 数组返回。你可以在 JSON_ARRAY
中使用不同类型的参数,例如字符串,数字和布尔值,它们都将被转换为相应的 JSON 类型。
JSON_VALUE函数用于提取JSON文档中的值。它的语法如下:
JSON_VALUE(json_document, path_expression [RETURNING datatype])
其中:
json_document
是包含JSON文档的字符串或BLOB列。path_expression
是用于指定要提取的值的路径表达式。datatype
是可选的,用于指定返回值的数据类型。
以下是一些示例:
提取JSON文档中的单个值:
SELECT JSON_VALUE("{"name": "John", "age": 30}", "$.name") as name FROM dual;
输出:
NAME----John
提取JSON文档中的数组:
SELECT JSON_VALUE("{"fruits": ["apple", "banana", "orange"]}", "$.fruits") as fruits FROM dual;
输出:
FRUITS
-----------------------
["apple", "banana", "orange"]
提取JSON文档中的数组元素:
SELECT JSON_VALUE("{"fruits": ["apple", "banana", "orange"]}", "$.fruits[0]") as first_fruit FROM dual;
输出:
FIRST_FRUIT
-----------
apple
指定返回值的数据类型:
SELECT JSON_VALUE("{"price": 9.99}", "$.price" RETURNING NUMBER) as price FROM dual;
输出:
PRICE
-----
9.99
在使用JSON_VALUE函数时,需要注意以下几点:
如果路径表达式不匹配JSON文档中的任何内容,则返回NULL。如果未指定返回值的数据类型,则返回的值将是一个字符串。JSON_VALUE函数还有一个类似的兄弟函数JSON_QUERY,不同的是,它返回JSON对象或数组,而不是标量值。JSON_QUERY函数用于从JSON文档中查询数据,返回一个JSON对象或数组。它的语法如下:
JSON_QUERY(json_document, path_expression [RETURNING datatype])
其中:
json_document
是包含JSON文档的字符串或BLOB列。path_expression
是用于指定要查询的值的路径表达式。datatype
是可选的,用于指定返回值的数据类型。
以下是一些示例:
查询JSON文档中的单个值:
SELECT JSON_QUERY("{"name": "John", "age": 30}", "$.name") as name FROM dual;
输出:
NAME
----
null
查询JSON文档中的数组:
SELECT JSON_QUERY("{"fruits": ["apple", "banana", "orange"]}", "$.fruits") as fruits FROM dual;
输出:
FRUITS
-----------------------
["apple", "banana", "orange"]
查询JSON文档中的数组元素:
SELECT JSON_QUERY("{"fruits": ["apple", "banana", "orange"]}", "$.fruits[0]") as first_fruit FROM dual;
输出:
FIRST_FRUIT
-----------
null
因为是单值,json_query无法展示
在使用JSON_QUERY函数时,需要注意以下几点:
如果路径表达式不匹配JSON文档中的任何内容,则返回NULL。如果未指定返回值的数据类型,则返回的值将是一个字符串。JSON_QUERY函数还有一个类似的兄弟函数JSON_VALUE,不同的是,它返回标量值,而不是JSON对象或数组。总之,JSON_QUERY函数在处理JSON文档时非常有用,可以轻松地查询和提取需要的数据。
JSON_TABLE函数可以将JSON数据转换为表格形式。以下是JSON_TABLE的用法:
语法:
JSON_TABLE(json, path COLUMNS (column1 expr1 [, column2 expr2]...))
参数说明:
json
:要转换的JSON数据。path
:要提取的JSON元素的路径。COLUMNS
:指定要转换的列及其表达式。column1 expr1 [, column2 expr2]...
:指定要转换的列及其表达式。
示例:
假设我们有以下JSON数据:
{ "employees": [ { "name": "John", "age": 30, "gender": "male" }, { "name": "Jane", "age": 25, "gender": "female" }, { "name": "Bob", "age": 35, "gender": "male" } ] }
我们可以使用以下查询将其转换为表格形式:
SELECT name, age, gender FROM JSON_TABLE("{ "employees": [ { "name": "John", "age": 30, "gender": "male" }, { "name": "Jane", "age": 25, "gender": "female" }, { "name": "Bob", "age": 35, "gender": "male" } ] }", "$.employees[*]" COLUMNS ( name VARCHAR2(50) PATH "$.name", age NUMBER PATH "$.age", gender VARCHAR2(10) PATH "$.gender" ));
输出结果:
NAME AGE GENDER
------ ---- ------
John 30 male
Jane 25 female
Bob 35 male
在上面的例子中,$.employees[*]
指定要处理的JSON元素路径,name
, age
, 和 gender
列使用 PATH
关键字指定表达式的路径。
我举个实际的例子,我有一列,对应的一列的数据大概是这样的:
{ "name": "cxk", // string "sex": "female", // stirng "hobbies": ["sing", "dance", "rap", "basketball"], // 普通数组 "company": {"name": "unknow", "staffNum": "unknow"}, // 对象属性 "fans": [ // 对象数组 {"name": "ncFans1"}, {"name": "ncFans2"} ] }
看了前面的介绍,可能有些同学对这个完全不能理解,有什么区别?
查询单值
select JSON_QUERY ("{ "name": "cxk", "sex": "female", "hobbies": ["sing", "dance", "rap", "basketball"], "company": {"name": "unknow", "staffNum": "unknow"}, "fans": [ {"name": "ncFans1"}, {"name": "ncFans2"} ] }", "$.name" ) as json_query_res, JSON_VALUE ("{ "name": "cxk", "sex": "female", "hobbies": ["sing", "dance", "rap", "basketball"], "company": {"name": "unknow", "staffNum": "unknow"}, "fans": [ {"name": "ncFans1"}, {"name": "ncFans2"} ] }", "$.name" ) as json_value_res from dual;
输出结果:
JSON_QUERY_RES JSON_VALUE_RES
--------------------------------
null cxk
区别1:json_query无法返回单值,json_value可以返回单值
查询对象
select JSON_QUERY ("{ "name": "cxk", "sex": "female", "hobbies": ["sing", "dance", "rap", "basketball"], "company": {"name": "unknow", "staffNum": "unknow"}, "fans": [ {"name": "ncFans1"}, {"name": "ncFans2"} ] }", "$.company" ) as json_query_res, JSON_VALUE ("{ "name": "cxk", "sex": "female", "hobbies": ["sing", "dance", "rap", "basketball"], "company": {"name": "unknow", "staffNum": "unknow"}, "fans": [ {"name": "ncFans1"}, {"name": "ncFans2"} ] }", "$.company" ) as json_value_res from dual;
输出结果:
JSON_QUERY_RES JSON_VALUE_RES
-------------------------------- ------------------
{"name": "unknow", "staffNum": "unknow"} null
区别2:json_query能返回对象,json_value不能返回对象值
查询普通数组
select JSON_QUERY ("{ "name": "cxk", "sex": "female", "hobbies": ["sing", "dance", "rap", "basketball"], "company": {"name": "unknow", "staffNum": "unknow"}, "fans": [ {"name": "ncFans1"}, {"name": "ncFans2"} ] }", "$.hobbies" ) as json_query_res, JSON_VALUE ("{ "name": "cxk", "sex": "female", "hobbies": ["sing", "dance", "rap", "basketball"], "company": {"name": "unknow", "staffNum": "unknow"}, "fans": [ {"name": "ncFans1"}, {"name": "ncFans2"} ] }", "$.hobbies" ) as json_value_res from dual;
输出结果:
JSON_QUERY_RES JSON_VALUE_RES
-------------------------------- ------------------
["sing", "dance", "rap", "basketball"] null
区别3:json_query能返回普通数组,json_value不能返回数组
结合1、2、3点,我们给hobbies加个下标
select JSON_QUERY ("{ "name": "cxk", "sex": "female", "hobbies": ["sing", "dance", "rap", "basketball"], "company": {"name": "unknow", "staffNum": "unknow"} "fans": [ {"name": "ncFans1"}, {"name": "ncFans2"} ] }", "$.hobbies[0]" ) as json_query_res, JSON_VALUE ("{ "name": "cxk", "sex": "female", "hobbies": ["sing", "dance", "rap", "basketball"], "company": {"name": "unknow", "staffNum": "unknow"} "fans": [ {"name": "ncFans1"}, {"name": "ncFans2"} ] }", "$.hobbies[0]" ) as json_value_res from dual;
输出结果:
JSON_QUERY_RES JSON_VALUE_RES
-------------------------------- ------------------
null sing
查询对象数组
select JSON_QUERY ("{ "name": "cxk", "sex": "female", "hobbies": ["sing", "dance", "rap", "basketball"], "company": {"name": "unknow", "staffNum": "unknow"}, "fans": [ {"name": "ncFans1"}, {"name": "ncFans2"} ] }", "$.fans" ) as json_query_res, JSON_VALUE ("{ "name": "cxk", "sex": "female", "hobbies": ["sing", "dance", "rap", "basketball"], "company": {"name": "unknow", "staffNum": "unknow"}, "fans": [ {"name": "ncFans1"}, {"name": "ncFans2"} ] }", "$.fans" ) as json_value_res from dual;
输出结果:
JSON_QUERY_RES JSON_VALUE_RES
-------------------------------- ------------------
[{"name": "ncFans1"},{"name": "ncFans2"}] null
区别4:JSON_QUERY可以匹配对象数组的值,JSON_VALUE不可以
这是比较难的一个步骤,我自己摸索了很久很久才懂,我这里举例都写到了谓动词的位置,实际上JSON_EXISTS是用在where后的。
案例1:找出存在name属性的行
SELECT case when JSON_EXISTS("{"name": "John", "age": 30, "city": "New York"}", "$.name") then "true" else "false" end as result FROM dual;
输出:
RESULT
---------
true
但其实,我们更多都是在匹配name值等于具体的值,这就要用匹配的机制,但愿你还记得前面介绍的用法
SELECT case when JSON_EXISTS(" { "name": "cxk", "sex": "female", "hobbies": ["sing", "dance", "rap", "basketball"], "company": {"name": "unknow", "staffNum": "unknow"} "fans": [ {"name": "ncFans1"}, {"name": "ncFans2"} ] } ", "$.name ? (@ == "cxk")") then "true" else "false" end as result FROM dual;
@
表示当前name属性这一层,值一定要用双引号括起来
多值匹配
SELECT case when JSON_EXISTS(" { "name": "cxk", "sex": "female", "hobbies": ["sing", "dance", "rap", "basketball"], "company": {"name": "unknow", "staffNum": "unknow"} "fans": [ {"name": "ncFans1"}, {"name": "ncFans2"} ] } ", "$.company ? (@.name == "unknow" && @.staffNum == "unknow")") then "true" else "false" end as result FROM dual;
如果是不同层级的多值匹配,建议在where后用AND连接起来,比如:
select * from mytable where JSON_EXISTS(my_cloumn, "$.name ? (@ == "cxk")") AND JSON_EXISTS(my_cloumn, "$.company ? (@.name == "unknow" && @.staffNum == "unknow")")
JSON_EXISTS可以检索普通数组中的值
SELECT case when JSON_EXISTS(" { "name": "cxk", "sex": "female", "hobbies": ["sing", "dance", "rap", "basketball"], "company": {"name": "unknow", "staffNum": "unknow"} "fans": [ {"name": "ncFans1"}, {"name": "ncFans2"} ] } ", "$.hobbies[*] ? (@ == "sing")") then "true" else "false" end as result FROM dual;
执行结果为true
JSON_EXISTS无法检索对象数组
SELECT case when JSON_EXISTS(" { "name": "cxk", "sex": "female", "hobbies": ["sing", "dance", "rap", "basketball"], "company": {"name": "unknow", "staffNum": "unknow"} "fans": [ {"name": "ncFans1"}, {"name": "ncFans2"} ] } ", "$.fans")") then "true" else "false" end as result FROM dual;
无论是$.fans
还是$.fans[*]
返回结果都是false,完全无法获取对象数组中的值。无法判断里面的值的对比情况。
JSON_EXISTS遇到空数组时,返回的是true
SELECT case when JSON_EXISTS(" { "name": "cxk", "sex": "female", "hobbies": ["sing", "dance", "rap", "basketball"], "company": {"name": "unknow", "staffNum": "unknow"} "fans": [] } ", "$.fans")") then "true" else "false" end as result FROM dual;
但如果是$.fans[0]
返回的是false
select * from mytable where JSON_VALUE(my_cloumn, "$.name") = "cxk" and JSON_QUERY(my_cloumn, "$.fans") = "[]" -- 判空
SELECT * from mytable where JSON_VALUE(JSON_QUERY(my_cloumn, "$.fans"), "$.name") = "ncFans1"
这个语句就是查找出fans中有ncFans1的记录
select * from mytable where JSON_QUERY(my_cloumn, "$.fans") = "[]"
使用JSON_EXISTS
select * from mytable where not JSON_EXISTS(my_cloumn, "$.fans[0]")
但是JSON_TABLE本身就很复杂,如果用来筛选数据,那这个语句太难维护了。
所以用#{}
无法注入,要用${}
,这在有些公司是不被允许的。目前我是这么用了,等安全部门的渗透测试结果出来,是否有sql注入风险再来更新。
以上提到的操作均需要在Oracle12以上版本中使用,但并不是12以上版本都能使用。这个和数据库设置的compatible
值有关。compatible
必须大于12.0才可以使用。
你可以使用拥有DBA权限的用户执行以下语句查看compatible
值
SELECT name, value FROM v$parameter WHERE name = "compatible"
否则,你会得到这样的一个报错
ORA-00406: COMPATIBLE parameter needs to be 12.0 or greater
然后你就白忙活了,因为一般都不会为了你特地升级compatible的。没事,我就是白忙活了。
到此这篇关于oracle中对JSON数据处理的文章就介绍到这了,更多相关oracle中JSON数据处理内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
标签:
上一篇 : 供应短缺局面缓解,沪镍大幅下挫|最新快讯
下一篇 : 最后一页
最新推荐
很多人对JSON不陌生,JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式,下面这篇文章主要给大家介
期货日报5月17日报道:近期,镍价持续下挫跌破前低。昨日,国内期货市场有色金属板块大面积飘绿,沪镍跌幅
5月17日,据央行网站消息,为丰富香港高信用等级人民币金融产品,完善香港人民币收益率曲线,根据中国人民
品玩5月17日讯,在2023年特斯拉股东大会上,在回答一位投资者有关马斯克是否考虑辞去特斯拉CEO一职的提问时
今天来聊聊关于陈淀高清照片,陈淀的文章,现在就为大家来简单介绍下陈淀高清照片,陈淀,希望对各位小伙伴
昆虫性信息素生物合成通路获“破解”
3 2万科学家入籍美国?人才严重流失,我国为何“留不住”人才?,美国,科研人员,顶尖科学家论坛
同花顺数据中心显示,盈趣科技5月16日获融资买入324 34万元,占当日买入金额的10 41%,当前融资余额1 74亿
1、我的微博里把他加为关注的人了,地址忘了,但你要是开通微博以后。2、直接搜索他就行了,他经常发微博,
21世纪以来8次西决全部晋级!湖人对掘金能否延续神迹,湖人,世纪,西决,丹佛掘金队,孟菲斯灰熊队,波士顿凯尔
【热门中概股多数下跌富途控股跌超4%老虎证券跌超7%】富途控股跌超4%、老虎证券跌超7%,两公司早前发布公告
根据5月16日的报道,虽然是法国名宿但更是梅西好朋友的亨利就在接受采访时表示自己希望梅西回归巴萨。亨利
1、新巴792M线是香港新界的一条巴士路线,来往调景岭站及西贡。2、本路线并非新巴投得的将军澳南六条专利巴
当前大家对于光前学村都是颇为感兴趣的,大家都想要了解一下光前学村,那么小美也是在网络上收集了一些关于
1、宁夏空间发展战略规划,宁夏开全国之先河,率先以省为单位编制和实施空间发展战略规划。2、按照“把...
变形金刚中为大家塑造了很多帅气的角色,它们都有着独特的外形和变形设计,虽然这些角色经典,但是长时间欣
新天药业:关于2021年限制性股票激励计划部分限制性股票回购注销完成的公告
林松华又站在了天津大学的敬业湖旁。看着图书馆门口排队的学生们,他想起了自己30年前,从福建北部的农村考
这篇文章主要介绍了RX7900XT和RX7900XTX区别对比介绍的相关资料,需要的朋友可以参考下,希望对大家有所帮助
2015年3月10日,苹果如期发布了12英寸版使用Retina屏幕的MacBookAir新品,不过新产品线摒弃了后缀,回归了
光庭信息(301221)05月16日在投资者关系平台上答复了投资者关心的问题。
预计四季度上市吉利银河E8专利图曝光日前,车质网从相关渠道获取了吉利银河纯电轿车E8专利图。新车将基于吉
从5月10日起,回家停车,成了让江苏省昆山市张浦镇碧悦湾小区业主们头疼的事情:不投诉不开停车库道闸、短
截至2023年5月16日收盘,华强科技(688151)报收于20 15元,上涨0 05%,换手率0 36%,成交量3544 0手,成交额713 68万元。
5月16日,沪胶持续震荡,上午上调100元 吨左右,下午行情回调20-100元 吨左右,趋势趋弱,国内市场天然橡胶
不需要焯水。因为鱼香肉丝的辅料非常多,好多都是生的,比如木耳是需要提前焯水煮好的,而葱头和萝卜本身就
1、韩剧天堂,以前在那下,最近换了韩剧在线。2、现在的更新速度没比较,种子质量不错,一般都有OST+花絮的
姚明颁奖暖心一幕曝光:帮杨鸣拿走身上彩纸辽宁主帅受宠若惊,姚明,杨鸣,辽宁,周琦,cba,中国篮球,美国篮球,
◆通讯员:朱国俊记者:梅友宽日前,鲁垛镇以“居而不独让爱回家”为主题的独居老人立体式陪伴计划正式...
张晨阳老师在讲授展示课郑州财税金融职业学院中专部学生认真听课市职教室历史学科教研员郭广一进行评课市中
中医师实践技能考试准考证打印时间2023由执业医师考试栏目提供,查找更多考试报名资讯、准考证打印、成绩查
1、离婚有一方死活不肯离怎么办1、按照我国《民法典》的规定,如出现感情确已破裂、态度坚决、调解无效,应
率先用上46大圆柱电池江淮钇为3纯电车即将开售:最远能跑600km
瑞星全功能安全软件2011,关于瑞星全功能安全软件2011介绍这个很多人还不知道,我们一起来看看!1、瑞星全功
针对这一需求痛点,《中国月子3 0时代白皮书》通过消费者定量调研、行业专家深度访谈、市场桌面研究与数据
【今年已有近20城支持团购买房:部分城市房价折扣可突破备案价跌幅限制】据不完全统计,今年以来,至少包括
今年2月3日,美国诺福克南方铁路公司的一列货运列车,在驶经俄亥俄州东巴勒斯坦城时发生脱轨事故,导致有毒
别人都说胸大穿衣服才好看才性感,在有S型,男人都不是喜欢这样的男人吗?平胸穿衣服很难显示自己身材,很
主料:鲤鱼适量辅料:豆腐皮适量,木耳适量,平菇适量调料:红99火锅底料适量,花椒适量,姜适量,葱适量,
1、《建材家居营销手册》是2011年机械工业出版社出版的图书,作者是蒋云飞。2、本书从产品、终端、推广、渠
1、宁夏国大药房连锁有限公司吴忠药店于2008年12月11日成立。2、法定代表人周鑫,公司经营范围包括:一般项
Midjourney官方表示,Midjourney中文版搭载在QQ频道上。据知情人士对记者透露,本次MJ中文内测属于MJ自主入
咸宁多部门联合开展5·12全国防灾减灾宣传日暨应急避难场所启用演练活动---5月12日,咸宁市消防救援支队通
中新经纬5月15日电15日,央行发布2023年第一季度中国货币政策执行报告,其中提到,当前我国经济没有出现通
5月15日电,据台湾“中央社”报道,阿迪达斯位于印度尼西亚的代工厂班那鲁工业公司传出将裁员千名员工,...
北京时间5月17日凌晨3点,欧冠半决赛,国米将与米兰进行次回合的德比战。比赛开始前,国米主帅小因扎吉出席
1、年使用在160天以上买车合适,以下租车合适。2、各公司各车型价钱不同。3、一般在100-300左右。本文就为
5月15日河北曲周中驰新材料有限公司煅烧焦报价2300元 吨,硫份3 0以下,灰分挥发0 7以下,碳98以上,比电阻
5月15日,网上曝出张翰与一女子一起聚餐后深夜同回小区,两人互动亲昵,疑似恋情曝光。据媒体报道,出生于1
李敏镐演的电视剧,李敏镐演的电视剧有什么很多人还不知道,现在让我们一起来看看吧!1、《信义》:这是李敏
成都抗疫的外籍志愿者:愿为城市“康复”贡献力量
黑河医保报销流程具体是怎样的 2023年黑河医保怎么用微信缴费
全球聚焦:证明姥姥不在世愁坏六旬老人,继承难题是否可以提供变通方案
上海警方侦破全国首例利用网络直播“打赏”实施洗钱犯罪案|视焦点讯
神战权力之眼百度云1080p_神战权力之眼百度云 环球微动态
异动快报:科远智慧(002380)5月15日10点5分触及涨停板
世界速递!为什么身边很多玩原神的好友都弃坑了 聊聊这几个版本的争议操作
当前热门:乡村振兴看湘潭丨雨湖区向阳村:产业发展与环境美化“齐步走”
易方达中证上海环交所碳中和ETF净值下跌1.77% 请保持关注-全球热闻
男子花1700买下价值70多万奶粉 商家退款不发货 天天热头条
《塞尔达传说:王国之泪》北通宙斯2就是手柄中的“大师之剑”|每日看点
当前热文:塞尔达传说王国之泪幻影套全收集攻略 幻影套获取位置在哪
国破山河在城春草木深的历史背景是安史之乱吗(国破山河在城春草木深的历史背景)_全球要闻
城建税+教育费附加+地方教育附加_城建税 教育费附加 地方教育附加怎么算 环球今头条
【世界新视野】中央气象台:雷州半岛西部和山东半岛东部沿岸海域将有雷暴大风
Copyright © 2015-2022 华南律师网版权所有 备案号:粤ICP备18025786号-52 联系邮箱: 954 29 18 82 @qq.com