2016-08-04 2 views
0

Если у меня есть следующий объект JSON:Извлечение данных из объекта JSON, используя подстроку

taxcodes = { 
    "CA_MONO CO": { 
      "Rate": 1, 
      "Country": "United States" 
     } 
} 

Использование taxcodes["CA_MONO CO"].Rate работает отлично в получении скорость 1.

Теперь моя проблема, если бы у меня была переменная, скажем: x = "CA_MONO CO_MAMMOTH LAKES".

taxcodes[x].Rate не будет работать, очевидно, из-за _MAMMOTH LAKES.

Так что я был вырезан все строки после CO_, который дал мне CA_MONO затем добавляют ' CO' обратно на конец строки, которая дала мне CA_MONO CO.

var modifiedx = x.substring(0, x.indexOf('CO_')) + ' CO';

Затем я попытался вытащить данные с помощью taxcodes[modifiedx].Rate, которые не тянут данные.

+1

Распечатайте значение 'modifiedx' и изучить его внимательно. –

ответ

1

У вас есть дополнительное пространство, когда вы добавите + ' CO'

taxcodes = { 
 
    "CA_MONO CO": { 
 
      "Rate": 1, 
 
      "Country": "United States" 
 
     } 
 
} 
 

 
x = "CA_MONO CO_MAMMOTH LAKES" 
 

 
var modifiedx = x.substring(0, x.indexOf('CO_')) + 'CO'; 
 

 
console.log(
 
\t taxcodes[modifiedx].Rate 
 
);

0

Это потому, что у вас есть дополнительное пространство от ' CO'. Таким образом, значение было "CA_MONO CO", а не "CA_MONO CO". Просто удалите его:

var modifiedx = x.substring(0, x.indexOf('CO_')) + 'CO'; 
0
var modifiedx = x.substring(0, x.indexOf('CO_')) + ' CO'; 

должен быть

var modifiedx = x.substring(0, x.indexOf('CO_')) + 'CO'; 
Смежные вопросы