JQuery自动完成json_encode自定义显示

时间:2011-11-28 16:42:22

标签: jquery autocomplete json

这让我有点疯狂。

我精通获得单个Ajax请求/自动完成功能。

但是,现在我正在努力获得多列结果。 我正在组合:JQuery自动填充示例中的Autocomplete RemoteCustom Display.

json_encoded数组返回一个字符串,如下所示:

A)

[
    {"value":"myvalue1","label":"mylabel1","desc":"mydescription1"},
    {"value":"myvalue2","label":"mylabel2","desc":"mydescription2"}
]

自动完成遥控器显示不同的格式。 应该是:

b)中

[
    {value:"myvalue1",label:"mylabel1",desc:"mydescription1"},
    {value:"myvalue2",label:"mylabel2",desc:"mydescription2"}
]

哪种格式正确 - a或b?我希望“a”,因为它需要更少的代码。

谢谢!

3 个答案:

答案 0 :(得分:1)

我认为正确的版本是第一个,A,第二个不是有效的JSON,因为它没有通过validation。您必须将"放在键/属性

之前

例如,这是从jQuery demo返回的json:

[
    {
        "id": "Coccothraustes coccothraustes",
        "label": "Hawfinch",
        "value": "Hawfinch"
    },
    {
        "id": "Accipiter gentilis",
        "label": "Northern Goshawk",
        "value": "Northern Goshawk"
    },
    {
        "id": "Accipiter nisus",
        "label": "Eurasian Sparrow Hawk",
        "value": "Eurasian Sparrow Hawk"
    },
    {
        "id": "Surnia ulula",
        "label": "Northern Hawk Owl",
        "value": "Northern Hawk Owl"
    }
]

答案 1 :(得分:1)

您应该在键/属性周围加上引号

建议{p> {"foo":"bar"}超过{foo:"bar"}

http://ejohn.org/blog/the-state-of-json/

http://ejohn.org/blog/ecmascript-5-strict-mode-json-and-more/

答案 2 :(得分:-1)

如果您希望插件执行类似obj.valueobj.label

的操作,则应为B.