Как получить значение объекта JSON, если его имя содержит точки?


108

У меня очень простой массив JSON (обратите внимание на объект "points.bean.pointsBase" ):

var mydata =   
{"list":  
  [  
    {"points.bean.pointsBase":  
      [  
        {"time": 2000, "caption":"caption text", duration: 5000},  
        {"time": 6000, "caption":"caption text", duration: 3000}  
      ]  
    }  
  ]  
};  

// Usually we make smth like this to get the value: 
var smth = mydata.list[0].points.bean.pointsBase[0].time; 
alert(smth); // should display 2000

Но, к сожалению, ничего не отображает.
Когда я меняю "points.bean.pointsBase" на что-то без точек в имени - все работает!

Однако я не могу изменить это имя на другое без точек, но мне нужно получить значение ?!
Есть ли варианты его получить?

Ответы:


215

Вы хотите:

var smth = mydata.list[0]["points.bean.pointsBase"][0].time;

В JavaScript любое поле, к которому можно получить доступ, используя расширение. оператора, вы можете получить доступ с помощью [] со строковой версией имени поля.


27

в javascript доступ к свойствам объекта можно получить с помощью. или с индексированием ассоциативного массива с помощью []. т.е. object.propertyэквивалентноobject["property"]

это должно сработать

var smth = mydata.list[0]["points.bean.pointsBase"][0].time;


4

Если ключ / имя объекта json содержит точку ......! лайк

var myJson = {"my.name":"vikas","my.age":27}

Чем вы можете получить доступ как

myJson["my.name"]
myJson["my.age"]

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.