이름에 점이 포함 된 경우 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" 를 이름에 점이없는 smth로
변경하면 모든 것이 작동합니다! 하지만이 이름을 점 없이는 다른 이름으로 변경할 수 없지만 값을 얻어야합니까?! 그것을 얻을 수있는 옵션이 있습니까?


답변:


215

당신이 원하는 것은 :

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

JavaScript에서. 연산자를 사용하는 경우 필드 이름의 문자열 버전과 함께 []를 사용하여 액세스 할 수 있습니다.


27

자바 스크립트에서 객체 속성은. 연산자 또는 []를 사용하는 연관 배열 인덱싱. 즉. 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"]

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.