質問編集履歴
4
誤記修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -7,7 +7,7 @@
|
|
7
7
|
|
8
8
|
### データ
|
9
9
|
|
10
|
-
|
|
10
|
+
|id|name|list|
|
11
11
|
|:--|:--|--|
|
12
12
|
|0|taro|AAA,BBB,CCC|
|
13
13
|
|1|hanako|DDD,EEE,FFF|
|
@@ -18,7 +18,7 @@
|
|
18
18
|
// DBから上記の値を取得
|
19
19
|
public List<Map<String, Object>> getList() throws SQLException {
|
20
20
|
HashMap<String, String> parameterMap = new HashMap<>();
|
21
|
-
try (PreparedStatement preparedStatement = connection.prepareStatement(
|
21
|
+
try (PreparedStatement preparedStatement = connection.prepareStatement("SELECT * FROM table")) {
|
22
22
|
try (ResultSet resultSet = preparedStatement.executeQuery()) {
|
23
23
|
ArrayList<Map<String, Object>> list = new ArrayList<>();
|
24
24
|
while(resultSet.next()) {
|
3
データの取り出し方を追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -5,15 +5,31 @@
|
|
5
5
|
配列をObject型に格納、その後の取り出し方がわかりません。
|
6
6
|
配列で取り出す方法がないか、ご教授お願いします。
|
7
7
|
|
8
|
+
### データ
|
8
9
|
|
10
|
+
|ID|name|list|
|
11
|
+
|:--|:--|--|
|
12
|
+
|0|taro|AAA,BBB,CCC|
|
13
|
+
|1|hanako|DDD,EEE,FFF|
|
14
|
+
|
9
15
|
### 該当のソースコード
|
10
16
|
|
11
17
|
```java
|
12
|
-
// DBから値を取得
|
18
|
+
// DBから上記の値を取得
|
19
|
+
public List<Map<String, Object>> getList() throws SQLException {
|
20
|
+
HashMap<String, String> parameterMap = new HashMap<>();
|
21
|
+
try (PreparedStatement preparedStatement = connection.prepareStatement(sql)) {
|
22
|
+
try (ResultSet resultSet = preparedStatement.executeQuery()) {
|
23
|
+
ArrayList<Map<String, Object>> list = new ArrayList<>();
|
24
|
+
while(resultSet.next()) {
|
25
|
+
list.add(setResultSetToMap(resultSet));
|
26
|
+
}
|
27
|
+
return list;
|
28
|
+
}
|
29
|
+
}
|
30
|
+
}
|
31
|
+
//Listを代入
|
13
|
-
List<Map<String, Object>> List =
|
32
|
+
List<Map<String, Object>> List = getList();
|
14
|
-
{"id":0, "name": "taro", "list": "AAA,BBB,CCC"},
|
15
|
-
{"id":1, "name": "hanako", "list": "DDD,EEE,FFF"}
|
16
|
-
];
|
17
33
|
|
18
34
|
// 他のデータと整合するために、map化
|
19
35
|
Map<String, JSONObject> ObjectMap= new HashMap<>();
|
2
実現したいこと 修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
Java初心者です。
|
4
4
|
カンマ区切りの文字列として受け取ったデータを配列に変換後、
|
5
5
|
配列をObject型に格納、その後の取り出し方がわかりません。
|
6
|
-
ご教授お願いします。
|
6
|
+
配列で取り出す方法がないか、ご教授お願いします。
|
7
7
|
|
8
8
|
|
9
9
|
### 該当のソースコード
|
1
事象の修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -44,9 +44,7 @@
|
|
44
44
|
|
45
45
|
// listを配列で受け取りたい
|
46
46
|
// ↓↓ここが不明↓↓
|
47
|
-
List<String> list = obj.get("list"); //
|
47
|
+
List<String> list = obj.get("list"); // ※1
|
48
|
-
List<String> list = (List<String>) obj.get("list"); // Objectから List<Object> への未検査キャスト⇒△と言われる
|
49
|
-
JSONArray list = obj.getJSONArray("list"); // これだとエラー
|
50
48
|
|
51
49
|
//この後配列を使いたい。。。
|
52
50
|
for (int j = 0; j < list .length(); ++ j) {...}
|
@@ -57,8 +55,25 @@
|
|
57
55
|
|
58
56
|
### 試したこと
|
59
57
|
|
58
|
+
※1の部分でobj.get("list")の型が知りたかったので、以下四つを試し、
|
59
|
+
- if (obj.get("list") instanceof Object)
|
60
|
+
- if (obj.get("list") instanceof String)
|
60
|
-
obj.get("list")
|
61
|
+
- if (obj.get("list") instanceof JSONObject)
|
62
|
+
- if (obj.get("list") instanceof List)
|
61
63
|
|
64
|
+
Object,Listの場合Trueが返されたので、List<String>型で受け取れるはず、と※1のように記載しましたが
|
62
|
-
|
65
|
+
記述の時点で「型の不一致: Object から List<String> には変換できません」と警告がでてしまいました。
|
63
66
|
|
67
|
+
|
68
|
+
型の不一致のため、キャストする方法に変更しましたが、以下の通り記載すると、
|
69
|
+
「Objectから List<Object> への未検査キャスト」と警告表示されます。
|
70
|
+
- List<String> list = (List<String>) obj.get("list");
|
71
|
+
|
72
|
+
|
73
|
+
また、ほかの配列(JSONArray)で受けられるかと思い、以下のようにしましたが、
|
64
|
-
|
74
|
+
実行時に型が違います、とエラー表示されます。
|
75
|
+
- JSONArray list = obj.getJSONArray("list");
|
76
|
+
|
77
|
+
|
78
|
+
|
79
|
+
### 補足情報(FW/ツールのバージョンなど)
|