開源nlohmann json解析庫詳解
阿新 • • 發佈:2018-11-21
nlohmann庫是C++解析json的庫,庫使用很簡單。環境使用linux+kdevelop即可,程式中使用nlohmann僅需要將json.hpp新增到工程中即可。
介紹一下相關函式的使用。
json j_object = {{"one", 1}, {"two", 2}};
查詢key:
可以用三種方式 find/at/下標
// call find1.find介面用的是迭代器,通過判斷是否等於end()來判斷鍵值是否存在
// print values
std::cout << std::boolalpha;
std::cout << "\"two\" was found: " << (it_two != j_object.end()) << '\n';
auto it_two = j_object.find("two");
2.使用at()介面會丟擲異常,需要新增異常處理
try { // calling at() for a non-existing key json j = {{"foo", "bar"}}; json k = j.at("non-existing"); } catch (json::exception& e) { // output exception information std::cout << "message: " << e.what() << '\n' << "exception id: " << e.id << std::endl; }
列印結果
message: [json.exception.out_of_range.403] key 'non-existing' not found
exception id: 403
3.通過下標來訪問
j_object["two"]=2
列印json物件內容:
j_object.dump(縮排量)
刪除:
通過key刪除
// call erase
auto count_one = j_object.erase("one");
通過索引刪除
// create a JSON array json j_array = {0, 1, 2, 3, 4, 5}; // call erase j_array.erase(2); // print values std::cout << j_array << '\n';
結果
[1,2,8,16]
通過迭代器刪除
j_array.erase(j_array.begin() + 2);