C 讀取解析JSON檔案(含中文)

2021-10-05 19:16:52 字數 1243 閱讀 6433

我用qt&c++寫了json檔案填寫編輯的功能,因為不能重複更新word檔案中的書籤,所以寫了一段c#讀json檔案的函式,以便於在c#中更新word的書籤。發現c#處理json檔案也非常方便。
劃重點:encoding.default保證中文正常顯示

streamreader streamreader = new streamreader(jsonfile,encoding.default);          

string jsonroot = streamreader.readtoend(); //讀全部json

dynamic objroot = jsonconvert.deserializeobject(jsonroot); //轉json物件

我習慣於把引數都放在乙個json檔案中,好處是管理起來比價方便。缺點是在c++中申請char 陣列時長度一定要足夠長。而在c#中就放在string中就不用管長度的問題。

當json檔案很複雜的情況下,**會很長不易於維護,因此我習慣於把json檔案中的引數拆分出來,這就需要拆分json檔案。

拆分json很簡單,取出子串,然後轉換成json資料格式即可。

json檔案的一級物件如下拆分:

string jsonprojinfo = objroot["projinfo"].tostring(); //取子串

dynamic objprojinfo = jsonconvert.deserializeobject(jsonprojinfo); //子串轉物件

json檔案的二級物件如下拆分:
string jsoncheckbox = objroot["preexplora"]["checkbox"].tostring();

dynamic objcheckbox = jsonconvert.deserializeobject(jsoncheckbox)

bool bselected = objcheckbox[i]["selected"]  // 布林變數

string stritem=objcheckbox[i]["item"].tostring() //字元變數

c#處理json檔案的效率不是最快的,但**很簡潔,便於維護。在資料量不大的情況下用c#處理json也是乙個好的選擇。我剛接觸c#和qt,不當之處請諒解。

讀取本地json檔案,解析json

data.json 檔案同目錄下 import json 引入模組 count 1 開啟乙個json檔案 data open data.json encoding utf 8 轉換為python物件 strjson json.load data flag false lockflag false w...

讀取本地json檔案,解析json 例項講解

模擬使用者登入 data.json 檔案同目錄下 import json 引入模組 count 1 開啟乙個json檔案 data open data.程式設計客棧json encoding utf 8 轉換為python物件 strjson json.load data flag false lo...

C 讀取json檔案內容

int main int argc,const char argv return runtest opts catch const std exception e std string strvalue json reader reader json解析 json value value 表示乙個j...