JSON相關操作函式

2021-07-22 12:23:25 字數 2153 閱讀 7788

json用法簡介

json簡介

jsoncpp 主要包含三種型別的 class:value、reader、writer。jsoncpp 中所有物件、類名都在 namespace json 中,包含 json.h 即可。

value

json::value 是jsoncpp 中最基本、最重要的類,用於表示各種型別的物件,jsoncpp 支援的物件型別可見 json::valuetype 列舉值。  

可如下是用 json::value 類:

json::value json_temp;      // 臨時物件,供如下**使用

json_temp["name"] = json::value("huchao");

json_temp["age"] = json::value(26);

json::value root;  // 表示整個 json 物件

root["key_string"] = json::value("value_string");         // 新建乙個 key(名為:key_string),賦予字串值:"value_string"。

root["key_number"] = json::value(12345);            // 新建乙個 key(名為:key_number),賦予數值:12345。

root["key_boolean"] = json::value(false);              // 新建乙個 key(名為:key_boolean),賦予bool值:false。

root["key_double"] = json::value(12.345);            // 新建乙個 key(名為:key_double),賦予 double 值:12.345。

root["key_object"] = json_temp;                           // 新建乙個 key(名為:key_object),賦予 json::value 物件值。

json::valuetype type = root.type();                       // 獲得 root 的型別,此處為 objectvalue 型別。

writer

jsoncpp 的 json::writer 類是乙個純虛類,並不能直接使用。在此我們使用 json::writer 的子類:json::fastwriter、json::styledwriter、json::styledstreamwriter。

顧名思義,用 json::fastwriter 來處理 json 應該是最快的,下面我們來試試。

json::fastwriter fast_writer;

std::cout << fast_writer.write(root) << std::endl;

輸出結果為:

,"key_string":"value_string"}

再次顧名思義,用 json::styledwriter 是格式化後的 json,下面我們來看看 json::styledwriter 是怎樣格式化的。

json::styledwriter styled_writer;

std::cout << styled_writer.write(root) << std::endl;

輸出結果為:

,"key_string" : "value_string"

}【value

json::reader 是用於讀取的,說的確切點,是用於將字串轉換為 json::value 物件的。

下面我們來看個簡單的例子。

json::reader reader;

json::value json_object;

const char* json_document = "";

if (!reader.parse(json_document, json_object))

return 0;

std::cout << json_object["name"] << std::endl;

std::cout << json_object["age"] << std::endl;

輸出結果為:

"huchao"26

MySQL 5 7 JSON相關操作

親身試驗過 官網ip create table demo id int unsigned primary key auto increment,comment json insert into demo id,name values 1,檢查第一層的key值 json keys select jso...

函式的相關操作

定義函式時需要新增函式文件說明 def print menu 這是列印50個 號用的 print 50 print 50 a input 請輸入乙個數 if a 20 print menu 先定義在呼叫 否則會報錯 else print 你輸入的數小於20 可以定義多個函式 也可以在函式裡呼叫函式。...

檔案操作相關函式

首先 檔案分為相對路徑和絕對路徑 比如我有乙個檔名為qaq的txt檔案 他的路徑可以是 d code test qaq.txt 這就是乙個絕對路徑 而如果當前路徑是d code,想要描述qaq.txt的話只需要輸入 test qaq.txt 而如果當前路徑是d other,想要描述qaq.txt的話...