私は基本的には「Person」クラスではないxObjectクラスを持っています。そのクラス全体を.jsonファイルにシリアル化し、そのファイルを読み込んでファイルから変数を抽出できるようにしたいそれらの変数をクラスの名前にリンクします。例えばのでC++クラスをjsonにシリアル化してjsonファイルを解析する方法は?
:
のXObjectクラスコード:
class xObject{
string name;
string lastname;
int age;
public:
string getName(){
return name;
}
string getLastname(){
return lastname;
}
int getAge(){
return age;
}
}
そして、私はそれにいくつかの属性を持つオブジェクトを作成します。
int main(){
xObject homer;
homer.name = "Homer";
homer.lastname = "Simpson";
homer.age = 30;
//SERIALIZATION OF HOMER.
homer.serialExport("File.json")
return 0;
}
だから今、私のFile.jsonは次のようになります。
{"homer" :
{"name" : "Homer"
"lastname" : "Simpson"
"age" : 30
}
}
、その後、私はこのようなもので、そこからデータを抽出するために、ファイルから読み込むことができるようにしたい:
int main(){
xObject bart;
bart.name = "Bart";
//ACTUAL USE OF THE .JSON FILE HERE
myFile = ("File.json");
bart.lastname = Deserializer(myFile).getLastname(); //It is supossed to assign "Simpson"
//to the lastname reading from the serialized
//homer class file described above.
bart.age = Deserializer(myFile).getAge() - 20; //Sets homer's age minus 20 years.
return 0;
}
これでC++でどうすればいいですか? (ライブラリの実装が受け入れられました)
そして、私はどのように直列化されたクラス名を取得できますか?
たとえばDeserialize(myFile).getClassName()
のために返す必要があります"homer"
、と私は」比較的新しいC++です。
それは働いた。あなたの答えにあったいくつかのタイプミスを編集し、fstreamコールのI/Oにいくつかの行を書きました。ありがとうございました。 – BlindHouse
私の電話でその答えを飛行機に書きました;) – Thomas