А чего страшного в открытии файла на сервере? Операция плёвая и не создаёт ощутимой нагрузки, если, конечно, у Вас не файл с миллионами строк. Его хранить в сессии не стоит. Открывайте каждый раз файл и декодируйте, по скорости это быстрее даже, чем декод XML. Обычная практика, проще говоря.
UPD: совсем забыл, что бы оперировать с ключами декодированного JSON, нужно декодировать с преобразованием в ассоциативный массив, т.е.
<?php
$str = file_get_contents('my.json');
// Указываем аргумент $assoc в true для преобразования в ассоциативный массив
// Подробнее http://php.net/manual/ru/function.json-decode.php
$json = json_decode($str, true);
echo json_encode($json[1]);// Нужный вам ключ, например 1
Разве ТС сказал, что ему нужен тут JS? ТС вроде явно указал, что нужно сделать на PHP.
К тому же это проще и надежнее сделать на PHP.