当我获得新的数据 json ORDER_TRX_H_ID 时,结果必须使用新的 ORDER_TRX_H_ID 循环,但我的结果始终显示最后的数据。
我的代码是
package main
import (
"encoding/json"
"fmt"
)
func main() {
dataJSON := `[
{
"QUICK_DATA_H_ID": "1",
"ORDER_TRX_H_ID": "1",
"FIELD_QUESTION": "FULLNAME",
"FIELD_ANSWER": "RUBEN",
"DTM_CRT": "2019-08-28T16:25:15.757Z"
},
{
"QUICK_DATA_H_ID": "2",
"ORDER_TRX_H_ID": "1",
"FIELD_QUESTION": "ALAMAT_KTP",
"FIELD_ANSWER": "jalandisana",
"DTM_CRT": "2019-08-28T16:25:15.757Z"
},
{
"QUICK_DATA_H_ID": "3",
"ORDER_TRX_H_ID": "2",
"FIELD_QUESTION": "FULLNAME",
"FIELD_ANSWER": "Fariz",
"DTM_CRT": "2019-08-28T16:25:15.757Z"
},
{
"QUICK_DATA_H_ID": "4",
"ORDER_TRX_H_ID": "2",
"FIELD_QUESTION": "ALAMAT_KTP",
"FIELD_ANSWER": "Bogor",
"DTM_CRT": "2019-08-28T16:25:15.757Z"
}
]`
var data []map[string]interface{}
json.Unmarshal([]byte(dataJSON), &data)
qa := map[string]interface{}{}
for _, v := range data {
qa[v["FIELD_QUESTION"].(string)] = v["FIELD_ANSWER"]
}
hasil := data[0]
hasil["QUESTION"] = qa
delete(hasil, "FIELD_QUESTION")
delete(hasil, "FIELD_ANSWER")
hasilJSON, _ := json.MarshalIndent(hasil, "", " ")
fmt.Println(string(hasilJSON))
}
您可以运行我的代码 https://play.golang.org/p/aHUoYZlEQs4
我的结果总是显示最后的数据
{
"DTM_CRT": "2019-08-28T16:25:15.757Z",
"ORDER_TRX_H_ID": "1",
"QUESTION": {
"ALAMAT_KTP": "Bogor",
"FULLNAME": "Fariz"
},
"QUICK_DATA_H_ID": "1"
}
我的预期结果
{
"DTM_CRT": "2019-08-28T16:25:15.757Z",
"ORDER_TRX_H_ID": "1",
"QUESTION": {
"ALAMAT_KTP": "jalandisana",
"FULLNAME": "RUBEN"
},
"QUICK_DATA_H_ID": "1"
},
{
"DTM_CRT": "2019-08-28T16:25:15.757Z",
"ORDER_TRX_H_ID": "2",
"QUESTION": {
"ALAMAT_KTP": "Bogor",
"FULLNAME": "Fariz"
},
"QUICK_DATA_H_ID": "2"
}
缥缈止盈
相关分类