Javascript 如何使用嵌套Json填充剑道UI网格?

Javascript 如何使用嵌套Json填充剑道UI网格?,javascript,json,kendo-ui,kendo-grid,Javascript,Json,Kendo Ui,Kendo Grid,如何用嵌套的JSON填充剑道UI网格 我的意思是我的JSON就像 var myJson: [{"oneType":[ {"id":1,"name":"John Doe"}, {"id":2,"name":"Don Joeh"} ]}, {"othertype":"working"}, {"otherstuff":"xyz"}] }]; 我想要KendoUIGrid,其中包含Id、Name、OtherType和OtherStuff等

如何用嵌套的JSON填充剑道UI网格

我的意思是我的JSON就像

var myJson:
    [{"oneType":[
        {"id":1,"name":"John Doe"},
        {"id":2,"name":"Don Joeh"}
    ]},
    {"othertype":"working"},
    {"otherstuff":"xyz"}]
}];
我想要KendoUIGrid,其中包含Id、Name、OtherType和OtherStuff等列


提前谢谢

对于复杂的JSON结构,可以使用

然后您可以使用:

var grid = $("#grid").kendoGrid({
    dataSource: {
        data    : {
            "oneType"   : [
                {"id": 1, "name": "John Doe"},
                {"id": 2, "name": "Don Joeh"}
            ],
            "othertype" : "working",
            "otherstuff": "xyz"
        },
        pageSize: 10,
        schema  : {
            data: "oneType"
        }
    }
}).data("kendoGrid");

我只是想提交另一个基于OnaBai的答案

HTML:

<script id="message-template" type="text/x-kendo-template">
  #for (var i = 0; i
  < ddl.length; i++) {# <li><span>#=ddl[i].value#</li>
    #}#
    </script>

<div id="grid"></div>

#对于(var i=0;i
#=ddl[i].值#
#}#
JS:

var grid = $("#grid").kendoGrid({
  dataSource: {
    data: [
      [{
        "id": 1,
        "name": "John Doe",
        "ddl": [{
          "key": 1,
          "value": "hello"
        }, {
          "key": 1,
          "value": "hello"
        }]
      }, {
        "id": 2,
        "name": "Don Joeh",
        "ddl": [{
          "key": 1,
          "value": "hello"
        }, {
          "key": 1,
          "value": "hello"
        }]
      }]
     ],
    pageSize: 10,
    schema: {
      parse: function(d) {
        for (var i = 0; i < d.length; i++) {
          if (d[i]) {
            return d[i];
          }
        }
        return [];
      }
    }
  },
  columns: [{
      field: "id",
      title: "ID"
    }, {
      field: "name",
      title: "Name"
    }, {
      field: "ddl",
      title: "DDL",
      width: "180px",
      template: kendo.template($("#message-template").html())
    } //template: "#=ddl.value#" }
  ]
}).data("kendoGrid");
var grid=$(“#grid”).kendoGrid({
数据源:{
数据:[
[{
“id”:1,
“姓名”:“约翰·多伊”,
“ddl”:[{
"关键":一,,
“值”:“你好”
}, {
"关键":一,,
“值”:“你好”
}]
}, {
“id”:2,
“姓名”:“Don Joeh”,
“ddl”:[{
"关键":一,,
“值”:“你好”
}, {
"关键":一,,
“值”:“你好”
}]
}]
],
页面大小:10,
模式:{
解析:函数(d){
对于(变量i=0;i
谢谢您的回复。通过使用模式,如何为网格指定列?我的意思是你能定义网格的柱结构吗?这似乎是另一个问题。它是?有两个不同的问题:一个是模型的定义;另一个是列的定义。像以前一样定义列。你最好看一下
<script id="message-template" type="text/x-kendo-template">
  #for (var i = 0; i
  < ddl.length; i++) {# <li><span>#=ddl[i].value#</li>
    #}#
    </script>

<div id="grid"></div>
var grid = $("#grid").kendoGrid({
  dataSource: {
    data: [
      [{
        "id": 1,
        "name": "John Doe",
        "ddl": [{
          "key": 1,
          "value": "hello"
        }, {
          "key": 1,
          "value": "hello"
        }]
      }, {
        "id": 2,
        "name": "Don Joeh",
        "ddl": [{
          "key": 1,
          "value": "hello"
        }, {
          "key": 1,
          "value": "hello"
        }]
      }]
     ],
    pageSize: 10,
    schema: {
      parse: function(d) {
        for (var i = 0; i < d.length; i++) {
          if (d[i]) {
            return d[i];
          }
        }
        return [];
      }
    }
  },
  columns: [{
      field: "id",
      title: "ID"
    }, {
      field: "name",
      title: "Name"
    }, {
      field: "ddl",
      title: "DDL",
      width: "180px",
      template: kendo.template($("#message-template").html())
    } //template: "#=ddl.value#" }
  ]
}).data("kendoGrid");