eval()을 사용하지 않고 JSON에서 값을 찾는 문자열을 실행해야하는 옵션을보고 싶습니다.eval을 사용하지 않는 옵션
내 JSON은 다음과 같습니다
var caso = {
"_id": "C1M3bqsB92i5SPDu",
"type": "bpm",
"bpm": {
"_data": {
"_id_bpm": "bpm_solicitud_viaticos"
},
"milestones": {
"solicitud": {
"toma_de_datos": {
"nombre": "RAUL MEDINA",
"clave": "123",
"departamento": "Finanzas",
"cantidad": "456"
}
}
}
}
}
을 이제 I'v 값의 문자열 : 나는이와 그 JSON에서 원하는 값을 받고 있어요
var step = "caso.bpm.milestones.solicitud.toma_de_datos.nombre";
:
var thevalue = eval(step);
어느 것이 eval() 대신에 사용할 수 있습니까? 효율적이고 쉽게 구현할 수 있습니까?
도움을 주셔서 감사합니다. 문자열이 해당 형식에 항상 경우 여기
var pieces = step.split('.');
var parent = window;
while(parent && pieces.length) {
parent = parent[pieces.shift()];
}
if(parent && pieces.length === 0) {
// parent is now the value
}
이 바이올린입니다 이상
당신이 사용할 수 있습니다 : 새로운 기능; –
점으로 구분 된 문자열입니까? – AD7six
경로 함수에서 가져 오기를 시도해보십시오. [Javascript : 문자열을 경로로 전달하여 객체의 깊이 값 가져 오기] (http://stackoverflow.com/questions/8817394/javascript-get-deep-value-from-object-by -passing-path-to-it-string) 또는 [자바 스크립트 개체 속성을 선택하는 가장 좋은 방법은 무엇입니까?] (http://codereview.stackexchange.com/questions/39979/what-is-the -best-to-select-a-javascript-object-property-at-any-depth) – megawac