【问题标题】:Ruby on Rails and JS - How get a object Json in Javascript?Ruby on Rails 和 JS - 如何在 Javascript 中获取对象 Json?
【发布时间】:2018-05-25 19:35:40
【问题描述】:

我有一个 Json,其中包含一些使用 Ruby on Rails 的信息(我通过控制器中的方法生成):

pis: [
{
kilometer: 621,
category: "fare",
name: "Guaraçaí",
toll: "false",
lat: -21.0059,
lng: -51.1904,
icon: "/img/icon_fare_map.png",
pedagios: [ ]
},

以下函数获取 Json(这在我的 Google 地图中显示标记):

function getAllPI(){
 $.get("/map_pis", function(data){
  $(data.pis).each(function(){

   // Adds a marker for each Json item
   addMarker(this);

   // Show all markers
   showMarkers();
  })
 });
}

如果我在 Json 中的“toll”字段为“true”,我只想添加标记并显示它。如果是“假”,我不想展示。我怎样才能做到这一点?我试过了:

if (pis.toll == true ) {
 addMarker(this);
}

但这没有用。我对 Json 没有太多经验。

有人可以帮助我吗?谢谢。

【问题讨论】:

    标签: javascript ruby-on-rails json google-maps


    【解决方案1】:

    在您的 json 中,您的收费值似乎是一个字符串。因此做

    pis.toll == true
    

    将始终为false,因为"true" 不等于true

    也许这会起作用

    pis.toll == "true" 
    

    【讨论】:

      【解决方案2】:

      您需要为您的.each 块定义一个参数,它指的是您正在使用的数组中的特定项目。然后您可以检查收费是否属实,如果是,请添加标记。我不确定this 是否是您想要传递给它的参数,但我猜item 是您需要的。

      function getAllPI(){
       $.get("/map_pis", function(data){
        $(data.pis).each(function(item){
      
         // Adds a marker for each Json item
         if (item.toll) addMarker(item);
      
         // Show all markers
         showMarkers();
        })
       });
      }

      【讨论】:

      • 这样它不起作用并且还会使点从地图上消失。 ://
      猜你喜欢
      • 1970-01-01
      • 2015-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-24
      • 1970-01-01
      • 2011-01-11
      • 1970-01-01
      相关资源
      最近更新 更多