本申請涉及計算機,特別涉及一種代碼解析方法、裝置、設(shè)備及存儲介質(zhì)。
背景技術(shù):
1、json(javascript?object?notation)解析是將json格式的字符串轉(zhuǎn)換為相應(yīng)的數(shù)據(jù)結(jié)構(gòu)(如python中的字典或javascript中的對象)的過程,json的基本結(jié)構(gòu)包括對象(由鍵值對組成)和數(shù)組(由值組成的有序集合)。
2、相關(guān)技術(shù)中,通常采用手動解析的方法對json文件進行解析。首先,需要將json數(shù)據(jù)讀取到內(nèi)存中,可以使用文件讀寫操作或網(wǎng)絡(luò)請求等方式獲取json數(shù)據(jù),然后將數(shù)據(jù)存儲在字符串變量中。然后,需要逐個解析json數(shù)據(jù)的各個字段。json數(shù)據(jù)由鍵值對組成,每個鍵對應(yīng)一個值,可以使用字符串處理操作(例如截取子字符串)和正則表達式等方式逐步解析json數(shù)據(jù)。完成解析后,可以通過鍵來獲取對應(yīng)的值,根據(jù)json數(shù)據(jù)的結(jié)構(gòu),可以使用字符串處理操作和類型轉(zhuǎn)換等方式將獲取到的值轉(zhuǎn)換為所需的數(shù)據(jù)類型,例如字符串、整數(shù)、浮點數(shù)等。手動解析的優(yōu)點是靈活性高,適用于簡單的json結(jié)構(gòu)和小型json文件。
3、然而,上述解析方法會消耗大量的計算機資源,導(dǎo)致解析速度變慢。
技術(shù)實現(xiàn)思路
1、本申請實施例提供了一種代碼解析方法、裝置、設(shè)備及存儲介質(zhì)。本申請實施例提供的技術(shù)方案如下:
2、根據(jù)本申請實施例的一個方面,提供了一種代碼解析方法,所述方法包括:
3、獲取代碼文件,所述代碼文件中包括位置標記,所述位置標記用于指示所述代碼文件中已經(jīng)過代碼解析處理的代碼的位置;
4、在所述位置標記不為第一數(shù)值的情況下,對所述代碼文件執(zhí)行增量解析處理,得到增量解析結(jié)果,所述增量解析處理用于對所述代碼文件中的增量代碼執(zhí)行代碼解析處理,所述增量代碼是指位于所述位置標記之后的代碼,所述位置標記不為所述第一數(shù)值用于表示所述代碼文件中存在已經(jīng)過代碼解析處理的代碼;
5、在所述位置標記為所述第一數(shù)值的情況下,對所述代碼文件執(zhí)行全量解析處理,得到全量解析結(jié)果,所述全量解析處理用于對所述代碼文件中的全量代碼執(zhí)行代碼解析處理,所述位置標記為所述第一數(shù)值用于表示所述代碼文件中不存在已經(jīng)過代碼解析處理的代碼。
6、根據(jù)本申請實施例的一個方面,提供了一種代碼解析裝置,所述裝置包括:
7、代碼獲取模塊,用于獲取代碼文件,所述代碼文件中包括位置標記,所述位置標記用于指示所述代碼文件中已經(jīng)過代碼解析處理的代碼的位置;
8、增量解析模塊,用于在所述位置標記不為第一數(shù)值的情況下,對所述代碼文件執(zhí)行增量解析處理,得到增量解析結(jié)果,所述增量解析處理用于對所述代碼文件中的增量代碼執(zhí)行代碼解析處理,所述增量代碼是指位于所述位置標記之后的代碼,所述位置標記不為所述第一數(shù)值用于表示所述代碼文件中存在已經(jīng)過代碼解析處理的代碼;
9、全量解析模塊,用于在所述位置標記為所述第一數(shù)值的情況下,對所述代碼文件執(zhí)行全量解析處理,得到全量解析結(jié)果,所述全量解析處理用于對所述代碼文件中的全量代碼執(zhí)行代碼解析處理,所述位置標記為所述第一數(shù)值用于表示所述代碼文件中不存在已經(jīng)過代碼解析處理的代碼。
10、根據(jù)本申請實施例的一個方面,提供了一種服務(wù)器,所述服務(wù)器包括處理器和存儲器,所述存儲器中存儲有計算機程序,所述計算機程序由所述處理器加載并執(zhí)行以實現(xiàn)上述代碼解析方法。
11、根據(jù)本申請實施例的一個方面,提供了一種計算機可讀存儲介質(zhì),所述計算機可讀存儲介質(zhì)中存儲有計算機程序,所述計算機程序由處理器加載并執(zhí)行以實現(xiàn)上述代碼解析方法。
12、根據(jù)本申請實施例的一個方面,提供了一種計算機程序產(chǎn)品,所述計算機程序產(chǎn)品包括計算機程序,所述計算機程序由處理器加載并執(zhí)行以實現(xiàn)上述代碼解析方法。
13、本申請實施例提供的技術(shù)方案可以帶來如下有益效果:
14、通過對代碼文件中的位置標記是否為第一數(shù)值進行判斷,使得可以根據(jù)位置標記是否為第一數(shù)值采用不同的代碼解析方式,在位置標記不為第一數(shù)值的情況下,僅對代碼文件中的增量代碼執(zhí)行代碼解析處理,得到增量解析結(jié)果,對于已經(jīng)過代碼解析處理的代碼,可以直接從服務(wù)器中獲取對應(yīng)的代碼解析結(jié)果,從而根據(jù)增量解析結(jié)果和已經(jīng)過代碼解析處理的代碼的代碼解析結(jié)果,得到代碼文件中的全量代碼的代碼解析結(jié)果,避免對已經(jīng)過代碼解析處理的代碼再次執(zhí)行代碼解析處理,節(jié)省了cpu(central?processing?unit,中央處理器)資源、內(nèi)存資源、i/o(input/output,輸入/輸出)資源等計算機資源,有效提升了代碼文件的代碼解析速度。
1.一種代碼解析方法,其特征在于,所述方法包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述對所述代碼文件執(zhí)行增量解析處理,得到增量解析結(jié)果,包括:
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述根據(jù)所述增量代碼,確定所述增量代碼的字段信息和所述增量代碼的類型信息,包括:
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述通過類型生成模型根據(jù)所述增量代碼和第一提示信息,生成所述增量代碼的類型信息,包括:
5.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述代碼文件中已經(jīng)過代碼解析處理的代碼的代碼解析結(jié)果存儲在服務(wù)器中;
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述對所述代碼文件執(zhí)行全量解析處理,得到全量解析結(jié)果,包括:
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述通過類型生成模型根據(jù)所述代碼文件和第三提示信息,生成所述代碼文件的類型信息,包括:
8.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述對所述代碼文件執(zhí)行全量解析處理,得到全量解析結(jié)果之后,還包括:
9.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述代碼文件中已經(jīng)過代碼解析處理的代碼的代碼解析結(jié)果存儲在服務(wù)器中;所述方法還包括:
10.一種代碼解析裝置,其特征在于,所述裝置包括:
11.一種服務(wù)器,其特征在于,所述服務(wù)器包括處理器和存儲器,所述存儲器中存儲有計算機程序,所述計算機程序由所述處理器加載并執(zhí)行以實現(xiàn)如權(quán)利要求1至9任一項所述的代碼解析方法。
12.一種計算機可讀存儲介質(zhì),其特征在于,所述計算機可讀存儲介質(zhì)中存儲有計算機程序,所述計算機程序由處理器加載并執(zhí)行以實現(xiàn)如權(quán)利要求1至9任一項所述的代碼解析方法。
13.一種計算機程序產(chǎn)品,其特征在于,所述計算機程序產(chǎn)品包括計算機程序,所述計算機程序由處理器加載并執(zhí)行以實現(xiàn)如權(quán)利要求1至9任一項所述的代碼解析方法。