2013-09-04 5 views
0

Я хочу, чтобы извлечь значение tenantId из ниже заданного JSONПолучение значений из JSON

{ 
    "ClientAccounts":{ 
    "@tenantId":"entpriseDemo", 
    "clientAccount":[ 
    { 
    "guid":"447a0bac-51e0-4f5f-b504-97dca5825530", 
    "totalValueFormatted":"$1,100,000" 
    } 
    ] 
    } 
} 

Это мой Javascript функция для вызова запроса Ajax и функции успеха код

$.ajax({ 
     url: "$clientAccountsURL", 
     cache: false, 
     dataType: "json", // set to json or xml 
     success: function(data){ 

     alert(data.ClientAccounts.tenantId); 


    } 
}); 

Когда Я предупреждаю значение tenantId в функции успеха, это возвращает мне неопределенное значение, хотя я проверил на firebug его доступный в json-массиве.

Есть ли другой способ получить значение tenantId.

ответ

1

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

data.ClientAccounts['@tenantId'] 
+0

Большое спасибо !!! он работал – rkj

+0

Затем, пожалуйста, используйте функцию upvote. Или отметьте одно из решений, как принято. – tea2code

2

Используйте квадратные скобки обозначения

data.ClientAccounts['@tenantId'] 

От this mdn article:

Имя объекта свойство может быть любой действительный строку JavaScript, или что-нибудь, что может быть преобразован в строку, включая пустую строку , Однако любое имя свойства, которое не является допустимым идентификатором JavaScript (например, имя свойства, которое имеет пробел или дефис или которое начинается с числа), может быть доступно только с помощью обозначения квадратной скобки.

1

Поскольку имя свойства содержит @ вы должны получить доступ к свойству, используя ассоциативный синтаксис массива.

data.ClientAccounts["@tenantId"]; 

JsFiddle:http://jsfiddle.net/VS9xe/

1

Вы можете использовать любой объект обозначение или и ассоциативное обозначение массива:

В вашем случае использовать ассоциативное обозначение массива:

alert(data.ClientAccounts["@tenantId"]); 

пример: http://jsfiddle.net/2kdWQ/1/

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