既知の最上位スキーマを持つJSONを解析しようとしています。しかし、スキーマの中には、さまざまなタイプのJSONオブジェクトを含むことができる1つのJSONオブジェクトがあります。JSON.Netを使用して、既知のJSON構造内の未知のJSONオブジェクト型のコレクションを解析する方法は?
例
{
"knownfield1": data,
"knownfield2": data,
"knownfieldcollection":
{
"fieldofunknowntype1": "string data",
"fieldofunknowntype2":
{
"subunknownfield1": "string data",
"subunknownfield1": null
},
"fieldofunknowntype3": null
}
}
私が知られているフィールドのマッピングを含むオブジェクトをしたいと思いますが、動的に未知のフィールドを読み取ることができます。私はJson.Net JTokenとJObjectで試していましたが、動作させることができませんでした。再帰的なJTokenの例外が発生し続けました。
これについての任意のポインタは素晴らしいでしょう。ありがとうございました。私は取得しています
例外:
Type 'Newtonsoft.Json.Linq.JToken' is a recursive collection data
contract which is not supported. Consider modifying the definition of
collection 'Newtonsoft.Json.Linq.JToken' to remove references to itself.
--edit-- 入力ミスコレクションオブジェクトについては、その固定しました。
私の入力に間違いがあります。私はそれを修正しましょう。 – Thaldin
JObjectの問題点は何ですか? Json.Parseを使用してJSON文字列を解析できます。 – Thomas
私は定義されているすべてのフィールドがあるC#オブジェクトにjsonをシリアル化していません。しかし、私の人生のために、私はC#オブジェクトの内部でプロパティを使用する場合、 "knownfieldcollection"(オブジェクト)を直列化解除することはできません。私は 'public JObject Field {get; set;} 'とJToken自身を参照することに関する再帰例外が発生します。 – Thaldin