1. 程式人生 > >開源nlohmann json解析庫詳解

開源nlohmann json解析庫詳解

nlohmann庫是C++解析json的庫,庫使用很簡單。環境使用linux+kdevelop即可,程式中使用nlohmann僅需要將json.hpp新增到工程中即可。

介紹一下相關函式的使用。

json j_object = {{"one", 1}, {"two", 2}};
查詢key:

可以用三種方式  find/at/下標

1.find介面用的是迭代器,通過判斷是否等於end()來判斷鍵值是否存在

    // call find
    // 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);