回答編集履歴
4
修正
answer
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
であればクラスにしてからプロパティを読み取るなんてまどろっこしいことしなくても直にjson文字列から処理できますよ。
|
5
5
|
以下のコードで全プロパティ(深い階層含む)を取れます。
|
6
6
|
|
7
|
-
```
|
7
|
+
```C#
|
8
8
|
string json; // JSON文字列
|
9
9
|
var root = (JContainer)JToken.Parse(json);
|
10
10
|
var log = root.DescendantsAndSelf()
|
3
サンプルコードを要望に沿ったものに修正
answer
CHANGED
@@ -7,9 +7,9 @@
|
|
7
7
|
```
|
8
8
|
string json; // JSON文字列
|
9
9
|
var root = (JContainer)JToken.Parse(json);
|
10
|
-
var
|
10
|
+
var log = root.DescendantsAndSelf()
|
11
11
|
.OfType<JProperty>()
|
12
|
-
.Select(p => p.Name)
|
12
|
+
.Select(p => p.Name + ": " + p.Value) // 「task_id: 10」という風になる
|
13
13
|
.ToArray();
|
14
14
|
```
|
15
15
|
|
2
修正
answer
CHANGED
@@ -1,8 +1,8 @@
|
|
1
|
-
クラスの
|
1
|
+
クラスのプロパティをリフレクションを使って取り出す方法は非常に重いのであまりおすすめできません。
|
2
2
|
|
3
3
|
json.netですよね?
|
4
4
|
であればクラスにしてからプロパティを読み取るなんてまどろっこしいことしなくても直にjson文字列から処理できますよ。
|
5
|
-
以下のコードで全
|
5
|
+
以下のコードで全プロパティ(深い階層含む)を取れます。
|
6
6
|
|
7
7
|
```
|
8
8
|
string json; // JSON文字列
|
1
補足追加
answer
CHANGED
@@ -11,4 +11,8 @@
|
|
11
11
|
.OfType<JProperty>()
|
12
12
|
.Select(p => p.Name)
|
13
13
|
.ToArray();
|
14
|
-
```
|
14
|
+
```
|
15
|
+
|
16
|
+
階層別に格納したい等もいくらでも対応できるので、いろいろ調べてみると今後もなにかと応用がききます。
|
17
|
+
公式ドキュメントは参考になるので是非読んでみてください。全部英語ですが、ほとんどコードなのできっと問題なく読めます。
|
18
|
+
[Querying JSON with LINQ](http://www.newtonsoft.com/json/help/html/QueryingLINQtoJSON.htm)
|