【问题标题】:search JSON in var jQuery在 var jQuery 中搜索 JSON
【发布时间】:2012-05-31 15:34:28
【问题描述】:

所以我已经在一个变量中存储了一个 JSON,但是我如何搜索它,基本上是当用户单击我要加载的公司名称并向他们显示商店地址、电话号码和其他详细信息时。

这里是变量

var myMarkers = {
    "markers": [
    {
        "id": 1,
        "name": "Belconnen",
        "url_name": "belconnen",
        "address": "Shop 176, 3rd Floor, Westfield Shopping Centre, Benjamin Way",
        "suburb": "Belconnen",
        "state": "act",
        "postcode": 2618,
        "country": "Australia",
        "phone": "(02) 6251 1838",
        "fax": "",
        "photo": "dcddfcb5c806b2255c611bd2d108cead.JPG",
        "text": "",
        "display": 1,
        "lat": -35.238428606,
        "lng": 149.065917134,
        "email": "tc.belconnen@telechoice.com.au",
        "dealer_code": 63014,
        "region_id": 3,
        "type": 4
    }
]

为了方便,我已经删除了大部分 JS。

这是我第一次尝试搜索和存储 JS,通常我会使用 PHP 来做,但我认为获取 JS 更容易更快。

【问题讨论】:

标签: jquery json search


【解决方案1】:

您可以使用object.propertyobject['property'] 语法访问对象的属性(两者是同义词,第二个允许您使用表达式)。

所以在你的情况下,你会得到这样的地址:

var address = myMarkers.markers[0].address;

使用类似的代码来获取您想要的其他信息。

【讨论】:

  • 我明白这一点,但是我如何进行 myMarkers.markers 搜索说我想搜索 Belconnen 并且只显示他们的信息
  • @RussellHarrower - 您只需要使用循环结构来遍历 JSON 并使用 if 语句来查找您要查找的属性。这是最简单的路线。
  • 您将遍历标记 - var l = myMarkers.markers.length; for( var i=0; i<l; i++) { if( myMarkers.markers[i].name == "Belconnen") { /* do stuff */ break; } }
  • @Kolink - 考虑将其放在您的答案中而不是评论中,因为这样更具可读性。 +1 正是我的想法。
【解决方案2】:

要搜索任何特定条目,您可以执行以下操作:

var target = 'Belconnen'; // value of target will change depending on click

$.each(myMarkers.markers, function() {
  if(this.name.toLowerCase() == target.toLowerCase()) {
    console.log(this.address);
    console.log(this.state); // and more
  }
});

【讨论】:

    猜你喜欢
    • 2011-03-31
    • 2019-01-04
    • 2012-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-16
    • 2019-06-08
    • 2017-09-14
    相关资源
    最近更新 更多