質問編集履歴

4

不要な部分削除

2022/08/14 14:21

投稿

whitehackerh
whitehackerh

スコア2

test CHANGED
File without changes
test CHANGED
@@ -35,29 +35,6 @@
35
35
  上記以外にhttp.Request の ParseFormやPostForm, PostFormValue など試してみましたが、いずれも
36
36
  うまくいきませんでした。
37
37
 
38
- ### 追記
39
-
40
- 構造体の `Expectations` のところを
41
- ```Go
42
- `Expectations []map[string]string `json:"expectations"``
43
- ```
44
-
45
- にするだけではだめですよね・・・?
46
- コンソールに以下の内容が出力されました。
47
- ```
48
- `"status":400,"error":"code=400, message=Unmarshal type error: expected=string, got=bool, field=body.expectations, offset=203, internal=json: cannot unmarshal bool into Go struct field .body.expectations of type string",`
49
- ```
50
-
51
- 上記に加えて回答に記述していただいた `const s` の部分を取得しようとして以下のように記述してみたのですが、
52
- `"message":"[PANIC RECOVER] json: cannot unmarshal bool into Go struct field .body.expectations of type string goroutine 24` というエラーが出てしまいました。
53
-
54
- ```Go
55
- length, _ := strconv.Atoi(r.Header.Get("Content-Length"))
56
- body := make([]byte, length)
57
- length, _ = r.Body.Read(body)
58
- if err := json.Unmarshal(body[:length], &構造体の変数); err != nil {
59
- panic(err)
60
- }
61
- ```
62
38
 
63
39
 
40
+

3

追記

2022/08/14 13:38

投稿

whitehackerh
whitehackerh

スコア2

test CHANGED
File without changes
test CHANGED
@@ -35,4 +35,29 @@
35
35
  上記以外にhttp.Request の ParseFormやPostForm, PostFormValue など試してみましたが、いずれも
36
36
  うまくいきませんでした。
37
37
 
38
+ ### 追記
38
39
 
40
+ 構造体の `Expectations` のところを
41
+ ```Go
42
+ `Expectations []map[string]string `json:"expectations"``
43
+ ```
44
+
45
+ にするだけではだめですよね・・・?
46
+ コンソールに以下の内容が出力されました。
47
+ ```
48
+ `"status":400,"error":"code=400, message=Unmarshal type error: expected=string, got=bool, field=body.expectations, offset=203, internal=json: cannot unmarshal bool into Go struct field .body.expectations of type string",`
49
+ ```
50
+
51
+ 上記に加えて回答に記述していただいた `const s` の部分を取得しようとして以下のように記述してみたのですが、
52
+ `"message":"[PANIC RECOVER] json: cannot unmarshal bool into Go struct field .body.expectations of type string goroutine 24` というエラーが出てしまいました。
53
+
54
+ ```Go
55
+ length, _ := strconv.Atoi(r.Header.Get("Content-Length"))
56
+ body := make([]byte, length)
57
+ length, _ = r.Body.Read(body)
58
+ if err := json.Unmarshal(body[:length], &構造体の変数); err != nil {
59
+ panic(err)
60
+ }
61
+ ```
62
+
63
+

2

title fix

2022/08/14 12:25

投稿

whitehackerh
whitehackerh

スコア2

test CHANGED
@@ -1 +1 @@
1
- Go (Echo) で複雑な構造のJSONからデータを取得したい
1
+ Go (Echo) で複雑な構造のJSON(POSTリクエスト)からデータを取得したい
test CHANGED
File without changes

1

詳細

2022/08/14 12:22

投稿

whitehackerh
whitehackerh

スコア2

test CHANGED
File without changes
test CHANGED
@@ -23,7 +23,7 @@
23
23
  type 構造体名 struct {
24
24
  Body struct {
25
25
  UserID string `json:"user_id"`
26
- Expectations map[int]map[string]string `json:"expectations"`
26
+ Expectations map[int]map[string]string `json:"expectations"`   // ※可変長です。UI的には行追加ボタンを押して何行でも入力できるイメージ
27
27
  } `json:"body"`
28
28
  }
29
29
  ```