JSON解组数组不工作,但相同的数据在javascript上工作

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

我尝试将一些数组值放入JSON字符串中,然后发送到浏览器,在浏览器中动态添加一些输入字段效果良好,但当我尝试在运行时检查新字段中的数据时,我尝试解组相同的数据,但由于值为空,因此无法工作

代码如下:

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,这是一个游乐场协议,不是我的代码,无论如何,很抱歉,谢谢你的帮助。非常感谢,我不知道我使用的是二维数组,非常感谢