質問するログイン新規登録

質問編集履歴

2

不要な文章を削除

2019/07/09 20:18

投稿

narutona
narutona

スコア23

title CHANGED
File without changes
body CHANGED
@@ -1,45 +1,47 @@
1
1
  ###実現したいこと
2
- jQueryで、こちらの``json``から、
2
+ jQueryで、対象の``json``から、
3
- 「``user_id = '317'``を持っている``"user"``の部分」
3
+ 「``user_id = '777'``を持っている``"user"``の部分」
4
4
  を取得するにはどのようにすればよろしいでしょうか?
5
5
 
6
6
  ```js
7
- // 見やすく改行してます
7
+ // 対象
8
8
  var json = '{
9
9
  "comment":[
10
10
  {
11
- "comment_id":364,
11
+ "comment_id":2,
12
12
  "comment_type":"A",
13
- "user":{"user_id":"317","user_type":"A"}, // ここだけ取得したい
13
+ "user":{"user_id":"777","user_type":"guest"}, // ここだけ取得したい
14
14
  "vote":0
15
15
  },
16
16
  {
17
- "comment_id":363,
17
+ "comment_id":1,
18
- "comment_type":"B"
18
+ "comment_type":"A"
19
19
  }
20
20
  ]
21
21
  }';
22
22
  ```
23
23
  つまり、上記``json``から下記``result``を取得したいのです。
24
24
  ```
25
+ // 取得
25
- var user_id = '317';
26
+ var user_id = '777';
26
27
  var result = '知りたい処理';
28
+
29
+ // 出力
27
- console.log( result ); // '{"user_id":"317","user_type":"A"}' という風に取得したい
30
+ console.log( result ); // '{"user_id":"777","user_type":"guest"}' という風に取得したい
28
31
  ```
29
- キーを指定して値を取得するのならわかるのですが、値を指定して、その値を持つ部分を取得する。となると、てんで予想できない処理でして、すみませんがどなたか、教えて頂けませんでしょうか。
30
32
 
31
33
  ちなみに``json``には同じ``user_id``が複数ありえますが、取得する``"user"``は最初の1つだけで構いません。
32
34
 
33
35
  ###試したこと
34
36
  ``$.grep``を使って下記を書いてみましたが、空の配列が取得されるだけでした…
35
37
  ```jQuery
36
- // 対象となるオブジェクト
38
+ // 対象
37
- var json = '{"comment":[{"comment_id":364,"comment_type":"A","user":{"user_id":"317","user_type":"A"},"vote":0},{"comment_id":363,"comment_type":"B"}]}';
39
+ var json = '{"comment":[{"comment_id":2,"comment_type":"A","user":{"user_id":"777","user_type":"guest"},"vote":0},{"comment_id":1,"comment_type":"A"}]}';
38
- var obj = JSON.parse( json );
40
+ var object = JSON.parse( json );
39
41
 
40
- // 要素を抽出する
42
+ // 取得
41
- var user_id = '317';
43
+ var user_id = '777';
42
- var result = $.grep(obj,
44
+ var result = $.grep(object,
43
45
  function(obj, idx){
44
46
  return (obj.user_id == user_id);
45
47
  }

1

試したことを追記

2019/07/09 20:18

投稿

narutona
narutona

スコア23

title CHANGED
File without changes
body CHANGED
@@ -1,3 +1,4 @@
1
+ ###実現したいこと
1
2
  jQueryで、こちらの``json``から、
2
3
  「``user_id = '317'``を持っている``"user"``の部分」
3
4
  を取得するにはどのようにすればよろしいでしょうか?
@@ -27,4 +28,23 @@
27
28
  ```
28
29
  キーを指定して値を取得するのならわかるのですが、値を指定して、その値を持つ部分を取得する。となると、てんで予想できない処理でして、すみませんがどなたか、教えて頂けませんでしょうか。
29
30
 
30
- ちなみに``json``には同じ``user_id``が複数ありえますが、取得する``"user"``は最初の1つだけで構いません。
31
+ ちなみに``json``には同じ``user_id``が複数ありえますが、取得する``"user"``は最初の1つだけで構いません。
32
+
33
+ ###試したこと
34
+ ``$.grep``を使って下記を書いてみましたが、空の配列が取得されるだけでした…
35
+ ```jQuery
36
+ // 対象となるオブジェクト
37
+ var json = '{"comment":[{"comment_id":364,"comment_type":"A","user":{"user_id":"317","user_type":"A"},"vote":0},{"comment_id":363,"comment_type":"B"}]}';
38
+ var obj = JSON.parse( json );
39
+
40
+ // 要素を抽出する
41
+ var user_id = '317';
42
+ var result = $.grep(obj,
43
+ function(obj, idx){
44
+ return (obj.user_id == user_id);
45
+ }
46
+ );
47
+
48
+ // 出力
49
+ console.log( result );
50
+ ```