回答編集履歴
1
試したコードを追加
answer
CHANGED
|
@@ -1,8 +1,45 @@
|
|
|
1
1
|
Data クラスを作りたく無いなら、 Json クラスに
|
|
2
2
|
```java
|
|
3
|
-
|
|
3
|
+
void setData(Json data) {
|
|
4
4
|
age = data.age;
|
|
5
5
|
}
|
|
6
6
|
```
|
|
7
7
|
と入れてはどうでしょう。
|
|
8
|
-
(※
|
|
8
|
+
~~(※試していません。)~~
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
試しました。
|
|
12
|
+
```java
|
|
13
|
+
import com.fasterxml.jackson.core.JsonProcessingException;
|
|
14
|
+
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
15
|
+
|
|
16
|
+
public class App {
|
|
17
|
+
public static void main( String[] args) {
|
|
18
|
+
String json = "{\"name\": \"tarou\",\"data\": {\"age\": 26}}";
|
|
19
|
+
ObjectMapper mapper = new ObjectMapper();
|
|
20
|
+
try {
|
|
21
|
+
System.out.println("" + mapper.readValue(json, TestData.class));
|
|
22
|
+
} catch(JsonProcessingException e) {
|
|
23
|
+
e.printStackTrace();
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
class TestData {
|
|
29
|
+
private String name;
|
|
30
|
+
private int age;
|
|
31
|
+
|
|
32
|
+
void setName(String name) { this.name = name; }
|
|
33
|
+
void setAge(int age) { this.age = age; }
|
|
34
|
+
void setData(TestData data) { age = data.age; }
|
|
35
|
+
|
|
36
|
+
@Override
|
|
37
|
+
public String toString() {
|
|
38
|
+
return "name=" + name + ", age=" + age;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
```
|
|
42
|
+
実行結果
|
|
43
|
+
```
|
|
44
|
+
name=tarou, age=26
|
|
45
|
+
```
|