回答編集履歴
3
コードを質問に合わせて修正
answer
CHANGED
@@ -5,22 +5,68 @@
|
|
5
5
|
import org.json.*;
|
6
6
|
|
7
7
|
public class JsonTest {
|
8
|
+
|
9
|
+
static List<Map<String, Object>> getList() {
|
10
|
+
ArrayList<Map<String, Object>> list = new ArrayList<>();
|
11
|
+
{
|
12
|
+
Map<String, Object> map = new HashMap<>();
|
13
|
+
map.put("id", "0");
|
14
|
+
map.put("name", "taro");
|
15
|
+
map.put("list", "AAA,BBB,CCC");
|
16
|
+
list.add(map);
|
17
|
+
}
|
18
|
+
{
|
19
|
+
Map<String, Object> map = new HashMap<>();
|
20
|
+
map.put("id", "1");
|
21
|
+
map.put("name", "hanako");
|
22
|
+
map.put("list", "DDD,EEE,FFF");
|
23
|
+
list.add(map);
|
24
|
+
}
|
25
|
+
return list;
|
26
|
+
}
|
27
|
+
|
8
28
|
public static void main(String[] args) {
|
29
|
+
//Listを代入
|
9
|
-
|
30
|
+
List<Map<String, Object>> List = getList();
|
10
|
-
obj.put("id", 10);
|
11
|
-
obj.put("list", new ArrayList<String>(Arrays.asList("aaa", "bbb", "ccc")));
|
12
|
-
System.out.println(obj);
|
13
31
|
|
32
|
+
// 他のデータと整合するために、map化
|
33
|
+
Map<String, JSONObject> ObjectMap= new HashMap<>();
|
34
|
+
for(Map<String, Object> map : List) {
|
35
|
+
JSONObject Object = new JSONObject();
|
36
|
+
Object.put("id", map.get("id"));
|
37
|
+
Object.put("name", map.get("name"));
|
38
|
+
if(map.get("list") != null) {
|
39
|
+
String string = (String)map.get("list");
|
40
|
+
// ここでカンマ区切りのリストに変換
|
41
|
+
List<String> list = Arrays.asList(string.split(","));
|
42
|
+
Object.put("list", list);
|
43
|
+
}
|
44
|
+
ObjectMap.put(Object.getString("id"), Object);
|
45
|
+
}
|
46
|
+
|
47
|
+
// 別のデータと整合(内容は省略)
|
48
|
+
List<JSONObject> outputObjectList = new ArrayList<>();
|
49
|
+
for(String id : ObjectMap.keySet()) {
|
50
|
+
JSONObject jsonObject = ObjectMap.get(id);
|
51
|
+
jsonObject.put("address", "〇〇県");
|
52
|
+
outputObjectList.add(jsonObject);
|
53
|
+
}
|
54
|
+
|
55
|
+
// 取り出し
|
56
|
+
for (JSONObject obj : outputObjectList) {
|
57
|
+
System.out.println(obj);
|
14
|
-
|
58
|
+
JSONArray list = obj.getJSONArray("list");
|
15
|
-
|
59
|
+
System.out.println(list);
|
60
|
+
}
|
16
61
|
}
|
17
62
|
}
|
18
63
|
```
|
19
64
|
```plain text
|
20
|
-
{"id":
|
65
|
+
{"address":"〇〇県","name":"taro","id":"0","list":["AAA","BBB","CCC"]}
|
21
|
-
["
|
66
|
+
["AAA","BBB","CCC"]
|
67
|
+
{"address":"〇〇県","name":"hanako","id":"1","list":["DDD","EEE","FFF"]}
|
68
|
+
["DDD","EEE","FFF"]
|
22
69
|
```
|
23
|
-
|
24
70
|
---
|
25
71
|
試したり書いている内に進捗が進まれていました...
|
26
72
|
こちらでは上記コードで警告等出ていません.
|
2
追記
answer
CHANGED
@@ -23,4 +23,8 @@
|
|
23
23
|
|
24
24
|
---
|
25
25
|
試したり書いている内に進捗が進まれていました...
|
26
|
-
こちらでは上記コードで警告等出ていません.
|
26
|
+
こちらでは上記コードで警告等出ていません.
|
27
|
+
|
28
|
+
実際に返されているクラスを調べるのでしたら,
|
29
|
+
System.out.println(obj.get("list").getClass().getCanonicalName());
|
30
|
+
で表示されると思います.
|
1
追記
answer
CHANGED
@@ -11,7 +11,7 @@
|
|
11
11
|
obj.put("list", new ArrayList<String>(Arrays.asList("aaa", "bbb", "ccc")));
|
12
12
|
System.out.println(obj);
|
13
13
|
|
14
|
-
JSONArray list = obj.getJSONArray("list");
|
14
|
+
JSONArray list = obj.getJSONArray("list");
|
15
15
|
System.out.println(list);
|
16
16
|
}
|
17
17
|
}
|
@@ -19,4 +19,8 @@
|
|
19
19
|
```plain text
|
20
20
|
{"id":10,"list":["aaa","bbb","ccc"]}
|
21
21
|
["aaa","bbb","ccc"]
|
22
|
-
```
|
22
|
+
```
|
23
|
+
|
24
|
+
---
|
25
|
+
試したり書いている内に進捗が進まれていました...
|
26
|
+
こちらでは上記コードで警告等出ていません.
|