JSON 内の配列が与えられた場合、それを JArray に変換する最適な方法を見つけようとしています。たとえば、以下の C# コードを検討してください。
var json = @"{
""cities"": [""London"", ""Paris"", ""New York""]
}";
このJSONをJObjectに読み込むと次のようになります。
var jsonObject = JObject.Parse(json);
ここで、「都市」フィールドを取得します。
var jsonCities = jsonObject["cities"];
ここで、jsonCities をタイプとして取得しますJToken
。jsonCities
は配列であることはわかっているので、 に変換したいと思いますJArray
。現在私が行っている方法は次のとおりです。
var cities = JArray.FromObject(jsonCities);
JArray に変換するもっと良い方法はないか調べています。他の人はどのように使っているのでしょうか?
ベストアンサー1
JArray へのキャストを提案した後、null 値をチェックすることで結果を検証できます。
var jsonCities = jsonObject["cities"] as JArray;
if (jsonCities == null) return;
...do your thing with JArray...
編集:
述べたようにdbcJArrayを表すJTokenは、すでにJArrayです。つまり、JToken.TypeがJTokenType.配列。そうであれば、表記法を使用してアクセスできますas JArray
。as
キャスト表記法を使用すると、キャストに失敗するnull
と、説明されているように値がレンダリングされます。こここれにより、実際に使用できる JArray を取得したかどうかを検証するのに便利になります。
JArray.FromObject(x)
は を取るのでobject
、 として表現できるものであれば何でも使用できobject
、したがって確実に JToken になります。
この場合、JToken から JArray に単純にキャストできることがわかっているので、別の可能性が生まれます。もっと速くなると期待しますが、これは他の誰かが考え出すための課題として残しておきます。