【问题标题】:Kendo fail to get json file and parseKendo 无法获取 json 文件并解析
【发布时间】:2016-02-29 13:11:57
【问题描述】:

我在远程服务器server\test.json 上存储了以下 JSON 文件:

{
    "ABC1": [
        {
            "field": "value",
            "field": "value",
            "field": "value"
        },
        {
            "field": "value",
            "field": "value",
            "field": "value"
        }
    ],
    "ABC2": {
        "field": "value",
        "field": "value"
    },
    "ABC3": [
        {
            "field": "value",
            "field": "value",
            "field": "value",
            "XYZ1": {
                "field": "value",
                "field": "value",
                "field": "value"
            },
            "field": "value"
        },
    ]
}

我正在尝试获取此 json 文件并使用 Kendo + AngularJS 渲染它。
我尝试了以下方法来获取文件:

this.detailsData = new kendo.data.DataSource(
{
schema: {

   // How to define schema for this json?    
},

transport: 
{
    read: 
    {
        contentType: "application/json; charset=utf-8",
        type: "GET",
        dataType: "jsonp",
        url: "server/test.json"
    }
},
change: function (data) 
{
    alert("Success :"+data);
},
error: function (xhr, error) 
{
    alert("Error");
    console.debug(xhr);
    console.debug(error);
}
});

每次收到错误“警报”时,我都无法获取文件。
在浏览器调试日志中,我收到错误:“SyntaxError: Unexpected token”和状态:“parsererror”。
我在某些事件上打电话给this.detailsData.read();

我可以从浏览器访问这个文件,没有任何问题。

这段代码有什么问题?
以及如何为这个json定义模式?

【问题讨论】:

  • 据我所知kendo.dataSource 只接受数组。
  • 那么是不是不能用剑道处理这个json?他们还有其他方式在使用剑道时显示这个 json 吗?
  • 你用什么剑道控件来显示数据?
  • 我现在没有使用任何东西,目前一切都在支持中。刚刚添加了一个虚拟kendo-mobile-contenkendo-mobile-view。最后我想显示排序列表。

标签: javascript angularjs json kendo-ui


【解决方案1】:

您是否有意尝试检索 jsonp 数据?这与 json 不同。如果您不期望 jsonp,请将您的数据类型声明更改为简单 json:

dataType: "json",

就定义您的数据源架构而言,如果您可以操作来自服务器的 JSON 数据格式,请尝试给它一个主对象名称(以下示例中的 myData)。

 {
    myData: [{
        "ABC1": [
            {
                "field": "value",
                "field": "value",
                "field": "value"
            },
            {
                "field": "value",
                "field": "value",
                "field": "value"
            }
        ],
        "ABC2": {
            "field": "value",
            "field": "value"
        },
        "ABC3": [
                    {
                        "field": "value",
                        "field": "value",
                        "field": "value",
                        "XYZ1": {
                            "field": "value",
                            "field": "value",
                            "field": "value"
                        },
                        "field": "value"
                    },
                ]
            }]
    }

那么,在你的 kendo 数据源中定义模式所要做的就是引用这个对象名称:

schema: {
            data: 'myData'
        }

【讨论】:

  • 我无法修改从服务器接收到的json数据并为其添加根变量对象,也不知道是否可以这样做。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-08-11
  • 1970-01-01
  • 2015-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多