cJSON讀寫數據例子

cJSON使用案例代碼。

#include <stdio.h>
#include <stdlib.h>
#include "../cJson/cJSON.h"

int main() {
?? ?FILE* jsonFile = fopen("data.json", "r");
?? ?if (jsonFile) {
?? ??? ?fseek(jsonFile, 0, SEEK_END);
?? ??? ?int jsonFileSize = ftell(jsonFile);
?? ??? ?fseek(jsonFile, 0, SEEK_SET);
?? ??? ?char* jsonStr = (char*)malloc(jsonFileSize + 2);
?? ??? ?fread(jsonStr, jsonFileSize, 1, jsonFile);
?? ??? ?fclose(jsonFile);
?? ??? ?cJSON* root;
?? ??? ?root = cJSON_Parse(jsonStr);
?? ??? ?if (root) {
?? ??? ??? ?cJSON* typeObj01 = cJSON_GetObjectItem(root, "type");
?? ??? ??? ?if (typeObj01) {
?? ??? ??? ??? ?printf("type:%s\r\n", typeObj01->valuestring);
?? ??? ??? ?}

?? ??? ??? ?cJSON* crsObj = cJSON_GetObjectItem(root, "crs");
?? ??? ??? ?if (crsObj) {
?? ??? ??? ??? ?cJSON* typeObj02 = cJSON_GetObjectItem(crsObj, "type");
?? ??? ??? ??? ?if (typeObj02) {
?? ??? ??? ??? ??? ?printf("type:%s\r\n", typeObj02->valuestring);
?? ??? ??? ??? ?}
?? ??? ??? ??? ?cJSON* propertiesObj1 = cJSON_GetObjectItem(crsObj, "properties");
?? ??? ??? ??? ?if (propertiesObj1) {
?? ??? ??? ??? ??? ?cJSON* nameObj = cJSON_GetObjectItem(propertiesObj1, "name");
?? ??? ??? ??? ??? ?if (nameObj) {
?? ??? ??? ??? ??? ??? ?printf("name:%s\r\n", nameObj->valuestring);
?? ??? ??? ??? ??? ?}
?? ??? ??? ??? ?}
?? ??? ??? ?}
?? ??? ??? ?cJSON* featuresObj = cJSON_GetObjectItem(root, "features");
?? ??? ??? ?if (featuresObj) {
?? ??? ??? ??? ?featuresObj = featuresObj->child;
?? ??? ??? ??? ?for (; featuresObj; featuresObj = featuresObj->next)
?? ??? ??? ??? ?{
?? ??? ??? ??? ??? ?cJSON* typeObj03 = cJSON_GetObjectItem(featuresObj, "type");
?? ??? ??? ??? ??? ?if (typeObj03) {
?? ??? ??? ??? ??? ??? ?printf("type:%s\r\n", typeObj03->valuestring);
?? ??? ??? ??? ??? ?}
?? ??? ??? ??? ??? ?cJSON* propertiesobj = cJSON_GetObjectItem(featuresObj, "properties");
?? ??? ??? ??? ??? ?if (propertiesobj) {
?? ??? ??? ??? ??? ??? ?cJSON* IDObj = cJSON_GetObjectItem(propertiesobj, "ID");
?? ??? ??? ??? ??? ??? ?cJSON* ELEVObj = cJSON_GetObjectItem(propertiesobj, "ELEV");
?? ??? ??? ??? ??? ??? ?if (IDObj && ELEVObj){
?? ??? ??? ??? ??? ??? ??? ?printf("ID:%d, ELEV:%f\r\n", IDObj->valueint, ELEVObj->valuedouble);
?? ??? ??? ??? ??? ??? ?}
?? ??? ??? ??? ??? ??? ?
?? ??? ??? ??? ??? ?}
?? ??? ??? ??? ?}
?? ??? ??? ?}
?? ??? ??? ?cJSON_Delete(root);
?? ??? ?}
?? ??? ?free(jsonStr);
?? ?}
?? ?return 1;
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/710760.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/710760.shtml
英文地址,請注明出處:http://en.pswp.cn/news/710760.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C++的一些細節技巧

列表和數組的區別 【C】list使用 1.C中怎么把字符串放到list&#xff1a; 在C中將字符串存入列表&#xff08;List&#xff09;可以使用標準庫的std::list<std::string>。下面是示例代碼&#xff1a; #include <iostream> #include <list> #include <st…

pt模型轉換為onnx的作用,直接用pt模型去檢測可以嗎

將PyTorch模型轉換為ONNX模型的作用主要在于提高模型的可移植性和兼容性&#xff0c;同時不能直接用PyTorch模型去檢測的原因可能涉及到環境配置、性能優化等方面。 首先&#xff0c;關于將PyTorch模型轉換為ONNX模型的作用&#xff0c;ONNX&#xff08;Open Neural Network E…

day57 集合 List Set Map

List實現類 List接口特點&#xff1a;元素有序 可重復 Arraylist 可變數組 jdk 8 以前Arraylist容量初始值10 jdk8 之后初始值為0&#xff0c;添加數據時&#xff0c;容量為10&#xff1b; ArrayList與Vector的區別&#xff1f; LinkList&#xff1a;雙向鏈表 優點&#xff1…

智慧工地物聯網云平臺APP源碼:監管端、工地端、危大工程、智慧大屏

目錄 技術說明 智慧工地 服務對象&#xff1a;項目現場 企業項目管理 服務對象&#xff1a;建設領域企業 政府工地監管 服務對象&#xff1a;全國各省建設領域政府機構 勞務實名制管理解決方案 綠色施工解決方案 視頻監控解決方案 塔機安全監控解決方案 施工升降機安…

Windows安裝Docker 容器教程(轉載)

Windows安裝Docker 容器教程 Docker Desktop - WSL distro terminated abruptlyA WSL distro Docker Desktop relies on has exited une Docker Desktop - Unexpected WSL error

【tableau學習筆記】tableau無法連接數據源

【tableau學習筆記】tableau無法連接數據源 背景&#xff1a; 學校講到Tableau&#xff0c;興奮下載Kaggle Excel&#xff0c;一看后綴CSV&#xff0c;導入Tableau發現報錯“tableau無法連接數據源”&#xff0c;自作聰明改為后綴XLSX&#xff0c;bug依舊。 省流&#xff1a…

【DIY】TA7376組成的耳機放大電路

用頭戴式耳機&#xff0c;尤其是小型耳機聽音樂&#xff0c;總感到音樂味不夠足&#xff0c;在低頻段的效果更差。因此用本機增強耳機的低頻特性&#xff0c;并采用立體聲反相合成的辦法&#xff0c;加上內藏簡易矩陣環繞聲電路&#xff0c;能獲得強勁的低音和在較寬的范圍內展…

構建一個基于Node.js的文件存儲服務

隨著現代web應用程序變得越來越復雜和功能強大&#xff0c;文件存儲服務成為了許多應用的重要組成部分。在本篇博客中&#xff0c;我們將探討如何構建一個基于Node.js的文件存儲服務&#xff0c;讓您可以輕松地上傳、下載和管理文件。我們將利用Node.js的強大功能和模塊來構建這…

美觀的404錯誤頁面源碼

超級簡單又美觀的404模板&#xff0c;css文件全部集成在index.html&#xff0c;源碼由HTMLCSSJS組成&#xff0c;記事本打開源碼文件可以進行內容文字之類的修改&#xff0c;雙擊html文件可以本地運行效果&#xff0c;也可以上傳到服務器里面&#xff0c;重定向這個界面 下載地…

蒼穹外賣知識點總結(一)

簡介 技術選型 展示項目中使用到的技術框架和中間件。 用戶層&#xff1a;node.js Vue.js ElementUI 微信小程序 apache echarts 網關層&#xff1a;nginx 應用層&#xff1a;Spring Boot Spring MVC Spring Task httpclie…

對齊了之后才舒服,matplotlib文字和字體設置

文章目錄 text方法字體局部字體 matplotlib教程&#xff1a; 初步&#x1f4c8; 子圖繪制&#x1f4c8; 坐標投影&#x1f4c8; 刻度設置&#x1f4c8; 共享坐標軸&#x1f4c8; 內容填充 text方法 【plt】提供了文字顯示函數text&#xff0c;包含三個必不可少的參數&am…

全量知識系統問題及SmartChat給出的答復 之7 三套工具之2

Q17. 三套工具的功能 問&#xff1a;以上代碼中并沒有體現出三套工具的功能性。 前端&#xff1a; 自動化或規則化 應用評測工具-“MOCK” &#xff08;會有三種不同的自動化程度&#xff1a;全自動化&#xff0c;半自動化和全人工&#xff09;&#xff0c;中間 &#xff1a; …

【QT+QGIS跨平臺編譯】之五十八:【QGIS_CORE跨平臺編譯】—【qgsexpression_texts.cpp生成】

文章目錄 一、Python二、生成來源三、構建過程3.1 構建qgsexpression_texts.cpp.temp3.2 構建qgsexpression_texts.cpp一、Python python.exe 是 Python 解釋器的可執行文件,用于在命令行中運行 Python 腳本。它是 Python 編程語言的解釋器程序,負責解析和執行 Python 代碼。…

第十四屆校模擬賽第一期(一)

“須知少時凌云志&#xff0c;自許人間第一流” 鄙人11月八號有幸參加學校校選拔賽&#xff0c;題型為5道填空題&#xff0c;5道編程題&#xff0c;總時間為4小時。奈何能力有限&#xff0c;只完成了5道填空和3道編程大題&#xff0c;現進行自省自糾&#xff0c;分享學習&#…

改進YOLO系列 | YOLOv5/v7 引入通用高效層聚合網絡 GELAN | YOLOv9 新模塊

今天的深度學習方法專注于如何設計最合適的目標函數,以使模型的預測結果最接近真實情況。同時,必須設計一個合適的架構,以便為預測提供足夠的信息。現有方法忽視了一個事實,即當輸入數據經過逐層特征提取和空間轉換時,會丟失大量信息。本文將深入探討數據通過深度網絡傳輸…

[AutoSar]BSW_Com06 CAN報文應用層到Can總線的函數調用

目錄 關鍵詞平臺說明一、背景二、PDU轉換三、函數調用 關鍵詞 嵌入式、C語言、autosar、OS、BSW 平臺說明 項目ValueOSautosar OSautosar廠商vector &#xff0c;芯片廠商TI 英飛凌編程語言C&#xff0c;C編譯器HighTec (GCC)autosar版本4.3.X >>>>>回到總目…

流水賬-20240229

目錄 git本地回滾到到120bc409ee3b8f63a23d0060e55118bcce557acf提交記錄本地提交到已有代碼分支 IDEA批量導入快捷鍵無效更換背景主題快捷鍵快捷鍵可以設置eclipse模式&#xff0c;但是有些不生效&#xff0c;可能是沖突了Ctrl單擊&#xff0c;Eclipse里面是可以跳轉到代碼內部…

AI:139-基于深度學習的語音指令識別與執行

??點擊這里跳轉到本專欄,可查閱專欄頂置最新的指南寶典~ ?????? 你的技術旅程將在這里啟航! 從基礎到實踐,深入學習。無論你是初學者還是經驗豐富的老手,對于本專欄案例和項目實踐都有參考學習意義。 ??? 每一個案例都附帶關鍵代碼,詳細講解供大家學習,希望…

js實現文件下載,并傳給后端

在JavaScript中&#xff0c;可以通過創建一個鏈接并設置其href屬性為文件的URL&#xff0c;然后使用download屬性指定文件的名稱來實現文件下載。以下是一個簡單的示例代碼&#xff1a; function downloadFile(url, filename) {const link document.createElement(a);link.hr…

Vue3自定義文件列表頁面(含上傳、搜索、復制鏈接)

文章目錄 一、代碼展示二、代碼解讀三、結果展示 一、代碼展示 <template><div class"container"><h1>文件列表</h1><div class"header-actions"><a-input placeholder"輸入關鍵詞搜索" v-model:value"…