2013-11-17 3 views
0

Я новичок в Json и Javascript У меня есть следующий код, и я создал массив JSON:поиск строки в массиве JSON и получить его значение

<script> 

function cost_change(price) { 
    var removed; 
    var value = <?php echo json_encode(Yii::app()->params['match_resales']);?>; 
    console.log("value",value);  

} 
</script> 

Теперь price это строка, которая должна искать в массиве json, и если его значение должно быть восстановлено.
Json массив напечатан как Object { 100000.0="1lakh", 200000.0="2lakh", 300000.0="3lakh"}. Предположим цену = "100000.0", тогда я должен получить var removed = 1lakh. Как это сделать

+1

Не значение [цена] работает? – Shreyas

+0

Да Это работает ... – user2770039

+0

Обратите внимание, что хотя вы используете 'json_encode', проблема не имеет ничего общего с JSON, поскольку вывод интерпретируется как литерал объекта. –

ответ

0

В JSON, который должен быть распечатан на Javascript будет выглядеть следующим образом:

 
{ 100000.0: "1lakh", 200000.0: "2lakh", 300000.0: "3lakh" } 

Это будет тогда работать, как ожидалось в вашей функции. PHP json_encode должен распечатать это, а не образец, который вы разместили. Таким образом, может возникнуть проблема с PHP.

0

Восстановленный JSon не является массивом, а объектом. Это важно. Это означает, что:

  1. Вы можете использовать первый элемент в качестве ключа для доступа к каждому члену (элементу).
  2. Вы не можете использовать его как обычный массив (поэтому он печатается как объект). Например, он не имеет «длины».

Сказав это, вы можете удалить элемент из объекта этот простой:

delete value[parseInt(price)]; 

здесь мы:

  1. доступа к значению «объект» с использованием нотации массивов, имеющих ключ для возврата всего члена.
  2. Преобразование строки цена в число (я предполагаю, что все они заканчиваются на .0, в противном случае вы должны использовать parse float).
  3. Удаление этого элемента из объекта.
Смежные вопросы