2013-09-13 3 views
-1

Мой код подобенКакова концепция доступа к данным JSON?

var param="abc"; 
var data = {abc:1,xyz:2};//json data 
console.log(data.abc); 
//console.log(data.param); 

Здесь м доступа data с использованием data.abc, его результат равен 1. Но когда я попытался передать это «ABC» с помощью параметра param его показ не определено.

Здесь m не получать погоду можно получить data, используя param, если да, то как ???

Может кто-нибудь мне помочь?

+3

Это не «данные JSON». Это литерал объекта JavaScript. – Pointy

+0

В этом вопросе нет JSON. – hobbs

+0

Фактически m выборка JSON там с помощью вызова ajax, поэтому я написал это так. – Sumant

ответ

5

JSON это просто формат сериализации, который использует текстовый подмножество JavaScript в строку - с использованием объектов в JavaScript не JSON (имя его я признаю это слегка заблуждение, мягко говоря,).

Чтобы сделать то, что вы хотите, просто использовать квадратные скобки, обозначения:

console.log(data[param]); 

Это позволяет любое выражение для размещения в ней и возвращаемое значение будет преобразовано в строку, а затем используется для доступа к свойству на объекте - это позволяет использовать динамические переменные, такие как param.

Например, вот некоторые результаты, которые возникают, когда вы используете квадратные скобки, обозначения:

var foo = 
    { '[object Object]': 1 
    , bar: 2 }; 
var x = "bar"; 

foo[{}]; // 1 
foo['[object Object]']; // 1 
foo.[object Object]; // SyntaxError: Unexpected token [ 
foo[bar]; // ReferenceError: bar is not defined 
foo.bar; // 2 
foo["bar"]; // 2 
foo[x]; // 2 
foo.x; // undefined 
+1

@Sumant Точно это. –

Смежные вопросы