[javascript] 이름에 점이 포함 된 경우 JSON 개체 값을 얻는 방법은 무엇입니까?

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



답변

당신이 원하는 것은 :

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

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


답변

자바 스크립트에서 객체 속성은. 연산자 또는 []를 사용하는 연관 배열 인덱싱. 즉. object.property다음과 같다object["property"]

이것은 트릭을해야한다

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


답변

시험 ["points.bean.pointsBase"]


답변

json 객체 키 / 이름에 점이 있으면 ……! 처럼

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

다음과 같이 액세스 할 수있는 것보다

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


답변

업데이트 된 솔루션을 사용하려면 lodash 유틸리티 https://lodash.com/docs#get을 사용해보십시오.


답변