JSON解组数组不工作,但相同的数据在javascript上工作
我尝试将一些数组值放入JSON字符串中,然后发送到浏览器,在浏览器中动态添加一些输入字段效果良好,但当我尝试在运行时检查新字段中的数据时,我尝试解组相同的数据,但由于值为空,因此无法工作 代码如下:JSON解组数组不工作,但相同的数据在javascript上工作,javascript,json,go,Javascript,Json,Go,我尝试将一些数组值放入JSON字符串中,然后发送到浏览器,在浏览器中动态添加一些输入字段效果良好,但当我尝试在运行时检查新字段中的数据时,我尝试解组相同的数据,但由于值为空,因此无法工作 代码如下: package main import "fmt" import "encoding/json" type PublicKey struct { Name string `json:"name"` Type string `j
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)
}
结果是:
[]main.PublicKey{main.PublicKey{Name:,Type:,Description:,value:[]字符串(nil)},main.PublicKey{Name:,Type:,Description:,value:[]字符串(nil)},main.PublicKey{Name:,Type:,Description:,value:[]字符串(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);
var jsonMenus=JSON.parse(parameterData);
for(设i=0;i任何人都可以帮助让JSON字符串在这两个位置工作吗?您的JSON是一个二维数组,但您正在尝试将其解组为一个一维数组
您需要解组到
[]PublicKey
,这里是调整后的操场:。不要忽略解组返回的错误。您试图将数组数组解组为PublicKey片段。请改为制作PublicKey片段。您的缩进和编码样式不会使示例代码更易于理解。非常感谢您的时间和帮助,是的,下面的例子让我明白了我的错误。Derk,这是一个游乐场协议,不是我的代码,无论如何,很抱歉,谢谢你的帮助。非常感谢,我不知道我使用的是二维数组,非常感谢