Jsoncpp使用詳解以及連結問題解決,jsoncpp使用詳解

來源:互聯網
上載者:User

Jsoncpp使用詳解以及連結問題解決,jsoncpp使用詳解

JSON(JavaScript Object Notation) 是一種輕量級的資料交換格式。 易於人閱讀和編寫。同時也易於機器解析和產生。 它基於JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一個子集。 JSON採用完全獨立於語言的文本格式,但是也使用了類似於C語言家族的習慣(包括C, C++, C#, Java, JavaScript, Perl, Python等)。 這些特性使JSON成為理想的資料交換語言。

JSON建構於兩種結構:

“名稱/值”對的集合(A collection of name/value pairs)。不同的語言中,它被理解為對象(object),紀錄(record),結構(struct),字典(dictionary),雜湊表(hash table),有鍵列表(keyed list),或者關聯陣列 (associative array)。
值的有序列表(An ordered list of values)。在大部分語言中,它被理解為數組(array)。
這些都是常見的資料結構。事實上大部分現代電腦語言都以某種形式支援它們。這使得一種資料格式在同樣基於這些結構的程式設計語言之間交換成為可能。

使用JsonCpp步驟:

一、下載JsonCpp

大家可以從我的資源下載,也可以從官方下載

二、編譯Lib

大家用VS開啟\jsoncpp-src-0.5.0\jsoncpp-src-0.5.0\makefiles\vs71目錄下的工程檔案,然後編譯就可以產生相關的Lib庫(預設產生:json_vc71_libmt.lib)



三、建立另外一種工程,將json_vc71_libmt.lib庫添加到相關路徑,並設定相應的工程屬性;同時源碼如下:

    //testjson 

    ifstream ifs;    ifs.open("testjson.json");    assert(ifs.is_open());    Json::Reader reader;    Json::Value root;    if ((!reader.parse(ifs, root, false)))    {        return false;    }    std::string name = root["name"].asString();    int age = root["age"].asInt();

連結庫和添加標頭檔:

#pragma  comment(lib, "json_vc71_libmt.lib")#include "../jsoncpp/include/json.h"#include<fstream>#include <cassert>using namespace std;

需要注意的是,我們在運行新工程可能出現下述錯誤:

問題一:error LINK2038:檢測到"RuntimeLibrary" 的不匹配項


解決方案:將新工程的工程編譯選項和jsoncpp工程的編譯選項設定為相同:


問題二:json_value.asm: No such file or directory


解決方案:將jsoncpp工程的編譯選項中的回報編程式輸出設定為無列表:



參考部落格:

Jsoncpp使用詳解以及連結問題解決

C++ 解析Json——jsoncpp

Jsoncpp的使用


著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.