json陣列解析的兩種形式 hive

2021-09-05 13:12:27 字數 1067 閱讀 6020

單個json我們很容易的可以用get_json_object進行解析,json陣列就需要用複雜的方式了

1、可以用udtf,這個是阿里雲環境下小夥伴幫忙寫的,但是這個不能和原資料進行關聯,就是只能取這乙個字段

import com.aliyun.odps.udf.udfexception;

import com.aliyun.odps.udf.udtf;

import com.aliyun.odps.udf.annotation.resolve;

import com.google.gson.jsonarray;

import com.google.gson.jsonelement;

import com.google.gson.jsonparser;

/** * sql試例

* parse_json_log(body) as()

*/@resolve("string->string")

public class parsejsonarray extends udtf

}}

2、用複雜的函式取出來,report是我的json陣列字段,這樣救能和別的字段連線起來一起取出來

注意:where條件要寫到lateral view之後,[   要通過轉義符替換

select 

identify_id

,get_json_object(concat(''),'$.reportid') as reportid

,get_json_object(concat(''),'$.title') as title

,get_json_object(concat(''),'$.isselect') as isselect

,dtfrom ods_trd_du_identify

lateral view

explode(split(regexp_replace(regexp_replace(report,'\\[\\]',''),'},\\{')) report as report_1

where ...

JSON的兩種解析方式

一.將需要轉換的物件轉換成json物件 1.首先建立json物件 gson gson new gson 2.建立物件 以book類為例 book b new book 3.轉換 string s g.tojson b 此時得到的s即是json的字串 二.將json物件轉換成需要的物件 1.首先建立j...

Java解析Json資料的兩種方式

json資料解析的有點在於他的體積小,在網路上傳輸的時候可以更省流量,所以使用越來越廣泛,下面介紹使用jsonobject和jsonarray的兩種方式解析json資料。使用以上兩種方式解析json均需要依賴json lib.jar開發包使用依賴包 1 jsonobject 使用jsonobject...

C C 的兩種多型形式

1 2 test.cpp4 5 created by mac on 15 8 11.6 7 8 include9 include10 using namespace std 11class person 基類person12 25person person 26 person person stri...