[發(fā)明專利]JSON數(shù)據(jù)解析方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)有效
| 申請(qǐng)?zhí)枺?/td> | 201710979911.7 | 申請(qǐng)日: | 2017-10-19 |
| 公開(公告)號(hào): | CN109684607B | 公開(公告)日: | 2022-04-08 |
| 發(fā)明(設(shè)計(jì))人: | 丁驥 | 申請(qǐng)(專利權(quán))人: | 騰訊科技(深圳)有限公司 |
| 主分類號(hào): | G06F40/151 | 分類號(hào): | G06F40/151;G06F8/51;G06F8/30 |
| 代理公司: | 華進(jìn)聯(lián)合專利商標(biāo)代理有限公司 44224 | 代理人: | 何平;鄧云鵬 |
| 地址: | 518000 廣東省深圳*** | 國省代碼: | 廣東;44 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | json 數(shù)據(jù) 解析 方法 裝置 計(jì)算機(jī) 設(shè)備 存儲(chǔ) 介質(zhì) | ||
1.一種JSON數(shù)據(jù)解析方法,包括:
獲取JSON數(shù)據(jù);
通過JSON數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)對(duì)應(yīng)的特殊格式符,識(shí)別得到所述JSON數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu);
當(dāng)數(shù)據(jù)結(jié)構(gòu)為數(shù)組時(shí),解析所述數(shù)組結(jié)構(gòu),獲取子元素為對(duì)象的JSON對(duì)象;
獲取各JSON對(duì)象的鍵名以及與所述鍵名對(duì)應(yīng)的鍵值;
根據(jù)所述鍵名將各JSON對(duì)象進(jìn)行轉(zhuǎn)換,得到各JSON對(duì)象對(duì)應(yīng)的Java類及Java類的各字段名,所述Java類的字段名與對(duì)應(yīng)JSON對(duì)象的所述鍵名對(duì)應(yīng);其中,當(dāng)所述數(shù)組的子元素包括不具有鍵名的子對(duì)象時(shí),所述根據(jù)所述鍵名將各JSON對(duì)象進(jìn)行轉(zhuǎn)換,得到各JSON對(duì)象對(duì)應(yīng)的Java類及Java類的各字段名的步驟包括:將所述數(shù)組的所有的不具有鍵名的子對(duì)象轉(zhuǎn)換成一個(gè)Java類;根據(jù)父數(shù)組的鍵名確定各不具有鍵名的子對(duì)象的鍵名;分別根據(jù)所述子對(duì)象的鍵名和子對(duì)象對(duì)應(yīng)的索引值得到所述Java類中各索引值對(duì)應(yīng)的字段名;所述索引值為子元素的下標(biāo);
根據(jù)所述鍵名在所述JSON對(duì)象中反射得到所述Java類的各字段名的字段值。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述通過JSON數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)對(duì)應(yīng)的特殊格式符,識(shí)別得到所述JSON數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)之后,還包括:當(dāng)所述數(shù)據(jù)結(jié)構(gòu)為對(duì)象時(shí),獲取JSON對(duì)象。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,解析所述數(shù)組結(jié)構(gòu),獲取子元素為對(duì)象的JSON對(duì)象步驟,包括:
針對(duì)數(shù)組,解析數(shù)組結(jié)構(gòu);
當(dāng)所述數(shù)組的子元素為子對(duì)象時(shí),獲取子元素為對(duì)象的JSON對(duì)象;
當(dāng)所述數(shù)組的子元素為子數(shù)組時(shí),返回所述針對(duì)數(shù)組,解析數(shù)組結(jié)構(gòu)的步驟。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,當(dāng)所述數(shù)組的子元素為子數(shù)組時(shí),根據(jù)對(duì)應(yīng)的所述父數(shù)組的鍵值和所述子數(shù)組的索引值得到所述子數(shù)組的鍵名。
5.根據(jù)權(quán)利要求1至4任一項(xiàng)所述的方法,其特征在于,所述獲取各JSON對(duì)象的鍵名以及與所述鍵名對(duì)應(yīng)的鍵值的步驟,包括:
通過字符串分析,獲取各JSON對(duì)象的鍵名以及與所述鍵名對(duì)應(yīng)的鍵值。
6.一種JSON數(shù)據(jù)解析裝置,包括獲取模塊、解析模塊、鍵獲取模塊、轉(zhuǎn)換模塊和反射模塊:
所述獲取模塊,用于獲取JSON數(shù)據(jù);
所述解析模塊,用于通過JSON數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)對(duì)應(yīng)的特殊格式符,識(shí)別得到所述JSON數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu);當(dāng)數(shù)據(jù)結(jié)構(gòu)為數(shù)組時(shí),解析所述數(shù)組結(jié)構(gòu),獲取子元素為對(duì)象的JSON對(duì)象;
所述鍵獲取模塊,用于獲取各JSON對(duì)象的鍵名以及與所述鍵名對(duì)應(yīng)的鍵值;
所述轉(zhuǎn)換模塊,用于根據(jù)所述鍵名將各JSON對(duì)象進(jìn)行轉(zhuǎn)換,得到各JSON對(duì)象對(duì)應(yīng)的Java類及Java類的各字段名,所述Java類的字段名與對(duì)應(yīng)JSON對(duì)象的所述鍵名對(duì)應(yīng);其中,當(dāng)所述數(shù)組的子元素包括不具有鍵名的子對(duì)象時(shí),所述轉(zhuǎn)換模塊,用于將所述數(shù)組的所有的不具有鍵名的子對(duì)象轉(zhuǎn)換成一個(gè)Java類;根據(jù)父數(shù)組的鍵名確定各不具有鍵名的子對(duì)象的鍵名;分別根據(jù)所述子對(duì)象的鍵名和子對(duì)象對(duì)應(yīng)的索引值得到所述Java類中各索引值對(duì)應(yīng)的字段名;所述索引值為子元素的下標(biāo);
所述反射模塊,用于根據(jù)所述鍵名在所述JSON對(duì)象中反射得到所述Java類的各字段名的字段值。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述解析模塊,用于當(dāng)所述數(shù)據(jù)結(jié)構(gòu)為對(duì)象時(shí),獲取JSON對(duì)象。
8.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述數(shù)據(jù)結(jié)構(gòu)識(shí)別模塊,還用于針對(duì)數(shù)組,解析數(shù)組結(jié)構(gòu),還用于在所述數(shù)組的子元素為子數(shù)組時(shí),針對(duì)數(shù)組解析數(shù)組結(jié)構(gòu);
所述對(duì)象獲取模塊,還用于當(dāng)所述數(shù)組的子元素為子對(duì)象時(shí),獲取子元素為對(duì)象的JSON對(duì)象。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述鍵獲取模塊,還用于當(dāng)所述數(shù)組的子元素為子數(shù)組時(shí),根據(jù)對(duì)應(yīng)的所述父數(shù)組的鍵值和所述子數(shù)組的索引值得到所述子數(shù)組的鍵名。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于騰訊科技(深圳)有限公司,未經(jīng)騰訊科技(深圳)有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710979911.7/1.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- 一種層疊樣式表的提取方法和設(shè)備
- JSON結(jié)構(gòu)轉(zhuǎn)換方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)
- Json結(jié)構(gòu)函數(shù)管理方法
- JSON數(shù)據(jù)生成方法及設(shè)備
- 一種JSON數(shù)據(jù)處理方法及裝置
- 一種JSON合并的數(shù)據(jù)處理方法及裝置
- 一種JSON報(bào)文加密方法、解密方法及裝置
- 一種Json日志的生成方法、裝置及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)
- 一種基于JSON解析的數(shù)據(jù)脫敏系統(tǒng)及方法
- 一種JSON序列化和反序列化的優(yōu)化方法及系統(tǒng)
- 數(shù)據(jù)顯示系統(tǒng)、數(shù)據(jù)中繼設(shè)備、數(shù)據(jù)中繼方法、數(shù)據(jù)系統(tǒng)、接收設(shè)備和數(shù)據(jù)讀取方法
- 數(shù)據(jù)記錄方法、數(shù)據(jù)記錄裝置、數(shù)據(jù)記錄媒體、數(shù)據(jù)重播方法和數(shù)據(jù)重播裝置
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)發(fā)送系統(tǒng)、數(shù)據(jù)發(fā)送裝置以及數(shù)據(jù)結(jié)構(gòu)
- 數(shù)據(jù)顯示系統(tǒng)、數(shù)據(jù)中繼設(shè)備、數(shù)據(jù)中繼方法及數(shù)據(jù)系統(tǒng)
- 數(shù)據(jù)嵌入裝置、數(shù)據(jù)嵌入方法、數(shù)據(jù)提取裝置及數(shù)據(jù)提取方法
- 數(shù)據(jù)管理裝置、數(shù)據(jù)編輯裝置、數(shù)據(jù)閱覽裝置、數(shù)據(jù)管理方法、數(shù)據(jù)編輯方法以及數(shù)據(jù)閱覽方法
- 數(shù)據(jù)發(fā)送和數(shù)據(jù)接收設(shè)備、數(shù)據(jù)發(fā)送和數(shù)據(jù)接收方法
- 數(shù)據(jù)發(fā)送裝置、數(shù)據(jù)接收裝置、數(shù)據(jù)收發(fā)系統(tǒng)、數(shù)據(jù)發(fā)送方法、數(shù)據(jù)接收方法和數(shù)據(jù)收發(fā)方法
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)再現(xiàn)方法、數(shù)據(jù)發(fā)送裝置及數(shù)據(jù)再現(xiàn)裝置
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)再現(xiàn)方法、數(shù)據(jù)發(fā)送裝置及數(shù)據(jù)再現(xiàn)裝置
- 一種數(shù)據(jù)庫讀寫分離的方法和裝置
- 一種手機(jī)動(dòng)漫人物及背景創(chuàng)作方法
- 一種通訊綜合測(cè)試終端的測(cè)試方法
- 一種服裝用人體測(cè)量基準(zhǔn)點(diǎn)的獲取方法
- 系統(tǒng)升級(jí)方法及裝置
- 用于虛擬和接口方法調(diào)用的裝置和方法
- 線程狀態(tài)監(jiān)控方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 一種JAVA智能卡及其虛擬機(jī)組件優(yōu)化方法
- 檢測(cè)程序中方法耗時(shí)的方法、裝置及存儲(chǔ)介質(zhì)
- 函數(shù)的執(zhí)行方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)





