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

回答編集履歴

1

試したコードを追加

2023/06/23 19:35

投稿

jimbe
jimbe

スコア13482

answer CHANGED
@@ -1,8 +1,45 @@
1
1
  Data クラスを作りたく無いなら、 Json クラスに
2
2
  ```java
3
- public void setData(Json data) {
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
+ ```