Я занимаюсь разработкой веб-сайта, используя Go для back-end и Angular для front-end.В Go я получаю необработанные данные из базы данных и справочной таблицы фиксированных настроек (в формате JSON), затем перезаписываю в соответствующие столбцы.
Необработанные данные выглядят так:
Site Code Main
0700-Shift 010_A
2135-Packing 030_C
3343-Check 050_E
4355-Casting 080_H
6903-ReDo Test 020_B
2277-Scope chk 040_D
Я вырезал частьтаблица настроек:
[{"010_A": [
{
"Code1": "010_01",
"Code2": "",
"Seq": "000 Start",
},
{
"Code1": "010_07",
"Code2": "010_0700",
"Seq": "010 Shift"
},
],
"020_B": [{
"Code1": "020_69",
"Code2": "",
"Seq": "000 ReDo Test"
},
{
"Code1": "020_27",
"Code2": "",
"Seq": "000 Redo Combine"
}
],
"080_H": [
{
"Code1": "080_06",
"Code2": "",
"Seq": "005 Merge"
},
{
"Code1": "080_43",
"Code2": "",
"Seq": "010 Casting"
},
{
"Code1": "080_66",
"Code2": "080_6621",
"Seq": "100 Cooling"
}
]}]
И структура Go для таблицы настроек:
type Settingtable struct {
Code1 string
Code2 string
Seq string
}
Я использую «Main», чтобы сначала проверить таблицу настроек от «010_A» до «080_H», если они совпадаютзатем используйте первые 4 цифры «Code» для проверки «Code2» в таблице настроек.Если «Main» и «Code2» все совпадают, тогда верните «Seq» и вставьте в столбец «Site».
Вот где я застрял:
package main
import (
"encoding/json"
"fmt"
)
func main() {
var jsonBlob = []byte(`[
{"010_A": [
{
"Code1": "010_02",
"Code2": "010_0231",
"Seq": "000 Start"
},
{
"Code1": "010_08",
"OP_CODE": "010_0822",
"Seq": "010 Shift"
}
],
"020_B": [{
"Code1": "020_69",
"Code2": "020_7011",
"Seq": "000 ReDo Test"
},
{
"Code1": "020_27",
"Code2": "",
"Seq": "000 Redo Combine"
}
],
"080_H": [
{
"Code1": "080_06",
"Code2": "",
"Seq": "005 Merge"
},
{
"Code1": "080_43",
"Code2": "",
"Seq": "010 Casting"
},
{
"Code1": "080_66",
"Code2": "080_6621",
"Seq": "100 Cooling"
}
]}
]`)
type Record map[string][]map[string]string
var records []Record
err := json.Unmarshal(jsonBlob, &records)
if err != nil {
fmt.Println("error:", err)
}
fmt.Printf("%+v\n", records)
if v, s := records[0]["020_B"][0]["Code2"]; s {
fmt.Println("ok:", v)
}
}
Он возвращается только первымрезультат, не говоря уже о том, что следующая функция, которую я хочу сделать (цикл поиска условия ввода, вставить в столбец необработанных данных ..)