質問編集履歴
2
不要な文章を削除
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,45 +1,47 @@
|
|
1
1
|
###実現したいこと
|
2
|
-
jQueryで、
|
2
|
+
jQueryで、対象の``json``から、
|
3
|
-
「``user_id = '
|
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":
|
11
|
+
"comment_id":2,
|
12
12
|
"comment_type":"A",
|
13
|
-
"user":{"user_id":"
|
13
|
+
"user":{"user_id":"777","user_type":"guest"}, // ここだけ取得したい
|
14
14
|
"vote":0
|
15
15
|
},
|
16
16
|
{
|
17
|
-
"comment_id":
|
17
|
+
"comment_id":1,
|
18
|
-
"comment_type":"
|
18
|
+
"comment_type":"A"
|
19
19
|
}
|
20
20
|
]
|
21
21
|
}';
|
22
22
|
```
|
23
23
|
つまり、上記``json``から下記``result``を取得したいのです。
|
24
24
|
```
|
25
|
+
// 取得
|
25
|
-
var user_id = '
|
26
|
+
var user_id = '777';
|
26
27
|
var result = '知りたい処理';
|
28
|
+
|
29
|
+
// 出力
|
27
|
-
console.log( result ); // '{"user_id":"
|
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":
|
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
|
40
|
+
var object = JSON.parse( json );
|
39
41
|
|
40
|
-
//
|
42
|
+
// 取得
|
41
|
-
var user_id = '
|
43
|
+
var user_id = '777';
|
42
|
-
var result = $.grep(
|
44
|
+
var result = $.grep(object,
|
43
45
|
function(obj, idx){
|
44
46
|
return (obj.user_id == user_id);
|
45
47
|
}
|
1
試したことを追記
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
|
+
```
|