Я пытаюсь поместить некоторые значения массива в строку JSON, куда я отправляю браузер и в браузере работает нормально, чтобы динамически добавлять некоторые поля ввода, но когда я пытаюсь проверить данные из этих новых полей на Go, я пытаюсьдемонтирует те же данные, но не работает, потому что значения пусты.
Это код:
package main
import "fmt"
import "encoding/json"
type PublicKey struct {
Name string `json:"name"`
Type string `json:"type"`
Description string `json:"description"`
Values []string `json:"values"`
}
func main() {
keysBody := []byte(`
[
[
{
"name":"fecha_inicio",
"type":"date",
"description":"Fecha de Inicio",
"values":[
""
]
}
],
[
{
"name":"fecha_final",
"type":"date",
"description":"Fecha Final",
"values":[
""
]
}
],
[
{
"name":"username",
"type":"select",
"description":"Usuario",
"values":[
"admin",
"gus"
]
}
]
]
`)
keys := make([]PublicKey,0)
json.Unmarshal(keysBody, &keys)
fmt.Printf("%#v", keys)
}
https://play.golang.org/p/kKT3IN4_8vb
Это результат:
[]main.PublicKey{main.PublicKey{Name:"", Type:"", Description:"", Values:[]string(nil)}, main.PublicKey{Name:"", Type:"", Description:"", Values:[]string(nil)}, main.PublicKey{Name:"", Type:"", Description:"", Values:[]string(nil)}}
Это тот же код в javascript, работающий нормально:
parameterData содержит ту же строку JSON
var jsonMenus = JSON.parse(parameterData);
for (let i = 0; i < jsonMenus.length; i++) {
let arr = jsonMenus[i];
for (let j = 0; j < arr.length; j++) {
//New DIV
var newDiv = document.createElement("div");
newDiv.setAttribute("class","w3-quarter");
//console.log(arr[j].name + ' ' + arr[j].type + ' ' + arr[j].description);
var label = document.createElement("Label");
label.innerHTML = arr[j].description;
label.setAttribute("class","w3-label");
newDiv.appendChild(label);
if (arr[j].type != 'select') {
var input = document.createElement("input");
input.type = arr[j].type;
input.name = arr[j].name;
input.setAttribute("class","w3-input w3-border w3-round");
newDiv.appendChild(input);
} else {
var select = document.createElement("select");
select.name = arr[j].name;
var values = arr[j].values
for (let k = 0; k < values.length; k++) {
opt = document.createElement('option');
opt.value = values[k];
opt.innerHTML = values[k];
select.appendChild(opt);
}
select.setAttribute("class","w3-input w3-border w3-round");
newDiv.appendChild(select);
}
container.appendChild(newDiv);
Может кто-нибудь может помочь иметьстрока JSON, работающая в обоих местах?