質問編集履歴

2

不要な文章を削除

2019/07/09 20:18

投稿

narutona
narutona

スコア23

test CHANGED
File without changes
test CHANGED
@@ -1,8 +1,8 @@
1
1
  ###実現したいこと
2
2
 
3
- jQueryで、こちらの``json``から、
3
+ jQueryで、対象の``json``から、
4
4
 
5
- 「``user_id = '317'``を持っている``"user"``の部分」
5
+ 「``user_id = '777'``を持っている``"user"``の部分」
6
6
 
7
7
  を取得するにはどのようにすればよろしいでしょうか?
8
8
 
@@ -10,7 +10,7 @@
10
10
 
11
11
  ```js
12
12
 
13
- // 見やすく改行してます
13
+ // 対象
14
14
 
15
15
  var json = '{
16
16
 
@@ -18,11 +18,11 @@
18
18
 
19
19
  {
20
20
 
21
- "comment_id":364,
21
+ "comment_id":2,
22
22
 
23
23
  "comment_type":"A",
24
24
 
25
- "user":{"user_id":"317","user_type":"A"}, // ここだけ取得したい
25
+ "user":{"user_id":"777","user_type":"guest"}, // ここだけ取得したい
26
26
 
27
27
  "vote":0
28
28
 
@@ -30,9 +30,9 @@
30
30
 
31
31
  {
32
32
 
33
- "comment_id":363,
33
+ "comment_id":1,
34
34
 
35
- "comment_type":"B"
35
+ "comment_type":"A"
36
36
 
37
37
  }
38
38
 
@@ -46,15 +46,19 @@
46
46
 
47
47
  ```
48
48
 
49
+ // 取得
50
+
49
- var user_id = '317';
51
+ var user_id = '777';
50
52
 
51
53
  var result = '知りたい処理';
52
54
 
55
+
56
+
57
+ // 出力
58
+
53
- console.log( result ); // '{"user_id":"317","user_type":"A"}' という風に取得したい
59
+ console.log( result ); // '{"user_id":"777","user_type":"guest"}' という風に取得したい
54
60
 
55
61
  ```
56
-
57
- キーを指定して値を取得するのならわかるのですが、値を指定して、その値を持つ部分を取得する。となると、てんで予想できない処理でして、すみませんがどなたか、教えて頂けませんでしょうか。
58
62
 
59
63
 
60
64
 
@@ -68,19 +72,19 @@
68
72
 
69
73
  ```jQuery
70
74
 
71
- // 対象となるオブジェクト
75
+ // 対象
72
76
 
73
- var json = '{"comment":[{"comment_id":364,"comment_type":"A","user":{"user_id":"317","user_type":"A"},"vote":0},{"comment_id":363,"comment_type":"B"}]}';
77
+ var json = '{"comment":[{"comment_id":2,"comment_type":"A","user":{"user_id":"777","user_type":"guest"},"vote":0},{"comment_id":1,"comment_type":"A"}]}';
74
78
 
75
- var obj = JSON.parse( json );
79
+ var object = JSON.parse( json );
76
80
 
77
81
 
78
82
 
79
- // 要素を抽出する
83
+ // 取得
80
84
 
81
- var user_id = '317';
85
+ var user_id = '777';
82
86
 
83
- var result = $.grep(obj,
87
+ var result = $.grep(object,
84
88
 
85
89
  function(obj, idx){
86
90
 

1

試したことを追記

2019/07/09 20:18

投稿

narutona
narutona

スコア23

test CHANGED
File without changes
test CHANGED
@@ -1,3 +1,5 @@
1
+ ###実現したいこと
2
+
1
3
  jQueryで、こちらの``json``から、
2
4
 
3
5
  「``user_id = '317'``を持っている``"user"``の部分」
@@ -57,3 +59,41 @@
57
59
 
58
60
 
59
61
  ちなみに``json``には同じ``user_id``が複数ありえますが、取得する``"user"``は最初の1つだけで構いません。
62
+
63
+
64
+
65
+ ###試したこと
66
+
67
+ ``$.grep``を使って下記を書いてみましたが、空の配列が取得されるだけでした…
68
+
69
+ ```jQuery
70
+
71
+ // 対象となるオブジェクト
72
+
73
+ var json = '{"comment":[{"comment_id":364,"comment_type":"A","user":{"user_id":"317","user_type":"A"},"vote":0},{"comment_id":363,"comment_type":"B"}]}';
74
+
75
+ var obj = JSON.parse( json );
76
+
77
+
78
+
79
+ // 要素を抽出する
80
+
81
+ var user_id = '317';
82
+
83
+ var result = $.grep(obj,
84
+
85
+ function(obj, idx){
86
+
87
+ return (obj.user_id == user_id);
88
+
89
+ }
90
+
91
+ );
92
+
93
+
94
+
95
+ // 出力
96
+
97
+ console.log( result );
98
+
99
+ ```