返回的Fusion Tables v1 new JSON不能与jqGrid& jsonReader

时间:2012-10-15 17:50:09

标签: jquery json jqgrid google-fusion-tables

这是我使用Fusion Tables测试版的代码(下面是Oleg在另一年帮助我的jqGrid代码的一部分):

jsonReader: {
repeatitems: false,
cell: "", // the same as cell: function (obj) { return obj; }
root: "table.rows",
page: function (obj) { return 1; },
total: function (obj) { return 1; },
records: function (obj) { return obj.table.rows.length; }
},

这是从Google返回的OLD JSON数据:

jQuery16406014587786572121_1350317794100(
{"table":
    {
    "cols":
        ["id","latitude","longitude","name","address_line_1","address_line_2","address_line_3","postcode"],
    "rows":
        [[1234,"55",-1.5, --etc

使用Google的新API,现在返回的JSON如下所示:

{
"kind": "fusiontables#sqlresponse",
"columns": [
    "id",
    "latitude",
    "longitude",
    "name",
    "address_line_1",
    "address_line_2",
    "address_line_3",
    "postcode"
],
"rows": [
    [
        "1234",
        "55",
        -1.5,
        "Name One",
        "Road 1",
        "Road 2",
        "Sunderland",
        "SR1 1AA"
    ],

它似乎没有'root',我无法弄清楚如何让jsonReader使用这个新的JSON。我有一个谷歌周围,看看是否有其他人遇到这个,但只有一两个未答复的命中。 java的。有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:0)

我只看到“表”部分从JSON响应中删除。所以我想你可以尝试以下jsonReader

jsonReader: {
    cell: "",
    page: function (obj) { return 1; },
    total: function (obj) { return 1; },
    records: function (obj) { return obj.rows.length; }
}

此外,您可以在id: 0中加入jsonReader,或使用key: true添加"id"列定义(在colModel中)。

顺便说一句,我不认为repeatitems: false是旧格式数据的正确设置。