2016-07-12 13 views
1

https://github.com/nlohmann/json#examplesでjson C++を使用する予定です。簡単な例を読んだ後、私は自分のオブジェクトでそれをどのように使用するのかまだ分かりません。例えば、私はクラスの読み書き(デシリアライズおよびシリアライズ)するStudentオブジェクトをJSONを使用する方法自分のオブジェクトにjson C++を使用するには?

class Student 
{ 
public: 
    Student(int id, string const& name) 
     : m_id(id), m_name(name) 
    {} 

private: 
    int m_id; 
    string m_name; 
}; 

がありますか?

+1

AFAIK nlohmann-jsonはシリアル化ライブラリではありません。 json文字列をC++コンテナに変換し、逆もまた同様です。 ThorsSerializer https://github.com/Loki-Astari/ThorsSerializer – Arunmu

+0

@Arunmuをチェックアウトすることができます。これは非常に良いです。 ThorsSerializerはクラスポリモーフィズム(派生クラスを指すベースクラスポインタ)をサポートしていますか? – user1899020

+0

申し訳ありませんが、私はまだそれを自分で使用していません。 – Arunmu

答えて

4

このライブラリは、serialization and deserializationのクラスとのやりとりをしていないようです。 しかし、あなたはそれをコンストラクタとゲッターで自分で実装することができます。

using json = nlohmann::json; 

class Student 
{ 
public: 
    Student(int id, string const& name) 
     : m_id(id), m_name(name) 
    {} 
    Student(json data) 
     : m_id(data["id"]), m_name(data["name"]) 
    {} 

    json getJson() 
    { 
     json student; 
     student["id"] = m_id; 
     student["name"] = m_name; 

     return student; 
    } 

private: 
    int m_id; 
    string m_name; 
}; 
関連する問題