2017-01-21 2 views
0

У меня есть JSon файл со структурой, как это:Получить данные из JSON с которой оператор

{ 
    "gasStationID":"441", 
    "gasStationLat":"39.6337420", 
    "gasStationLong":"22.4324412", 
    "fuelCompID":"6", 
    "fuelCompNormalName":"AVIN", 
    "ddID":"42010100", 
    "municipalityID":"42010000", 
    "countyID":"42000000", 
    "phone1":null, 
    "username":"user1", 
    "fuelTypeID":"1", 
    "fuelPrice":"1.379" 
}, 
{ 
    "gasStationID":"441", 
    "gasStationLat":"39.6337420", 
    "gasStationLong":"22.4324412", 
    "fuelCompID":"6", 
    "fuelCompNormalName":"AVIN", 
    "ddID":"42010100", 
    "municipalityID":"42010000", 
    "countyID":"42000000", 
    "phone1":null, 
    "username":"user1", 
    "fuelTypeID":"1", 
    "fuelPrice":"1.478" 
} 

Итак, мой вопрос, как получить fuelPrice с fuelTypeID=1?

Мой JavaScript-файл состоит в следующем:

for (i = 0; i < obj.length; i++) { 
    var _gasStationCompName = obj[i].fuelCompNormalName; 
    var priceID = obj[i].fuelTypeID; 
    switch (fuelId) { 
     case '1': 
     case priceID == 1: 
      price = obj[i].fuelPrice; 
      break; 
     case '2': 
     case priceID == 2: 
      price = obj[i].fuelPrice; 
      break; 
     default: 
      price = "0"; 
    } 

Моя проблема заключается в том, что в price = obj[i].fuelPrice показывает только fuelPrice с fuelType=2. Как я могу фильтровать внутри оператора switch результат?

До этого я разбираю файл JSON. Кроме того, вы можете видеть, что у меня есть case: '1'. Это потому, что у меня есть что-то вроде этого в моем HTML файл:

<div> 
     <select onChange="getData(this.value);"> 
      <option value="1">Gas</option> 
      <option value="2">Diesel</option> 
     </select> 
</div> 
+1

Да, как проверить Ер имен человеки Название переменных – RiggsFolly

+0

Я редактировал пост и фиксированный переменные. –

ответ

0

Мне удалось найти решение. Вот правильное заявление переключателя, который работает как шарм:

     var priceID = obj[i].fuelTypeID; 
         switch (fuelTypeID) { 
          case '1': 
           if (priceID == 1) { 
            price = obj[i].fuelPrice; 
           } 
           break; 
          case '2': 
           if (priceID == 2) { 
            price = obj[i].fuelPrice; 
           } 
           break; 
          default: 
           price = 0; 
         } 
0

Переменные и объекты ключи чувствительны к регистру (А = а!);

for (i = 0; i < obj.length; i++) { 
    var _gasStationCompName = obj[i].fuelCompNormalName; 
    var priceID = obj[i].fuelTypeID; // fuelTypeId => fuelTypeID 
    switch (priceID) { fuelTypeId // => priceID 
     case '1': 
     case priceID == 1: 
      price = obj[i].fuelPrice; 
      break; 
     case '2': 
     case priceID == 2: 
      price = obj[i].fuelPrice; 
      break; 
     default: 
      price = "0"; 
    } 
} 
+0

Я отредактировал мое сообщение. В операторе switch я переключаю значение из '», который я хочу выбрать, и цены меняются в реальном времени. «FuelId» в инструкции switch отличается от «fuelTypeID» в файле JSON. Я переключаю значение из '