号
あなたには、いくつかの既存のJSONを持っている場合は、JTokenにそれを解析し、JsonPath expressionでSelectToken
またはSelectTokens
を使用して、それから一つ以上の子孫JTokensを選択することができます。例:
string json = @"{ ""ArrayA"": [{ ""ArrayB"": [{ ""Property"": ""foo"" }] }] }";
JToken token = JToken.Parse(json);
JToken fooToken = token.SelectToken("$..Property");
Console.WriteLine(fooToken.ToString()); // prints "foo"
また、JTokensのネスト構造を手動で構築することもできます。たとえば、あなたはこのようにあなたの質問にJOBJECTを作成することができます。
var obj = new JObject(new JProperty("ArrayA", new JArray(
new JObject(new JProperty("ArrayB", new JArray(
new JObject(new JProperty("Property", ""))))))));
しかし、JsonPath式が、何からJTokenを作成するための組み込みの方法はありません。あなたはそれのようなことをする独自のメソッドをロールバックする必要があります。しかし、JsonPathはクエリメカニズムとして設計されていることに留意してください。新しいオブジェクトの作成にきれいにマップされません。ここでは、あなたが考える必要があるだろういくつかの問題です:あなたの例の表現、$.ArrayA[0].ArrayB[0].Property
で
- は、
Property
はどのようなタイプですか?文字列、数値、ブール値、オブジェクト、または空の配列ですか?どのように指定しますか?
- 複数のプロパティを持つオブジェクトの作成をどのように指定しますか?
$..book[(@.length-1)]
のような表現はどのように作成されますか?