JSON ベースのプロトコルのスキーマを正式に定義したいと考えています。スキーマには次の 2 つの基準があります。 1. ツールを使用してパーサー/シリアライザー (php および .net) を作成できるようにしたい。2. 結果の JSON は人間が読みやすいものにする必要があります
これが文脈です。スキーマはゲーム キャラクターを記述します。例として、プロファイルの 1 つの側面である職業を取り上げます。キャラクターは 2 つまでの職業を持つことができます (10 のリストから)。各職業は名前とレベルによって記述されます。例:
スキニング - レベル 200 鍛冶屋 - レベル 300
基準 1 を満たすには、XSD スキーマ (または JSON スキーマ) を使用してコード ジェネレーターまたはパーサー ライブラリを駆動することが非常に役立ちます。しかし、それは私の JSON が次のように見える必要があることを意味します:
character : {
professions : [
{ profession : "Skinning", level : 525 }
{ profession : "Blacksmith", level : 745 }
]
}
しかし、あまりにもおしゃべりな感じがするので、JSON を次のようにしたいと思います (職業がキーとして使用されていることに注意してください)。
character {
professions : {
"Skinning" : 525,
"Blacksmith" : 745
}
}
しかし、後のJSONは職種ごとに要素を定義しないとXSDで記述できません。
だから私は自分の状況の解決策を探しています.ここに私が特定したオプションがあります:
- 黙って、JSON XSD フレンドリーにします (上記の最初のスニペット)
- 黙ってJSONを人間に優しくし、パーサー/シリアライザーを手作業でコーディングしてください。
しかし、両方の基準を満たすソリューションを見つけたいと思っています。
注: Newton-King の JSON ライブラリを使用すると、職業を Dictionary として解析できることは承知していますが、この JSON をマップする型を手動でコーディングする必要があります。したがって、これまでのところ、オプション 2 に傾いていますが、提案は受け付けています。