하나의 객체가 노드와 링크로 구성된 JSON 배열이 있습니다.JSON 배열에서 객체로 변환 한 후 정의되지 않은 값
data = [Object]=[ { nodes: Array[..] ,links: Array[…] } ]
이것은 모두 괜찮습니다. 예를 들어 링크에 액세스하기 위해 데이터 [0] .links를 사용해야합니다. 약간 짜증이납니다. 나는 배열을 객체로 만들고 싶습니다. 그래서 data.links는 링크에 대한 액세스를 제공합니다.
data = data[0];
을하지만 객체의 배열, data.links는 "정의되지 않은".IT는 특정 요소가 예를 data.links[3].name
를 들어, 값이 표시됩니다 액세스 할 때 것 같아로 표시됩니다 : 내가 설정하는 것을 시도했다. 왜 그런가요?
편집 : 구체적
:
데이터 경우 = [{노드 : 배열 [...] 링크 : 배열 [...]}] =>
console.log(data[0].links); //shows the data[0].links[0].name = value in the console
만약 데이터 = {노드 : 배열 [...] 링크 : 배열 [...]} =>
console.log(data.links); //shows data[0].links[0].name = undefined
그러나 흥미롭게
console.log(data.links[0].name); //shows the correct value.
이 표기법이란 무엇입니까? JS에서'[Object]'는 내장 객체 생성자를 포함하는 배열이고'Array [foo]'는'foo'를 평가 한 결과 인'Array' 생성자의 속성을 찾습니다. –
_ '개체의 배열 data.links가 "undefined"로 표시됩니다. _ _ 표시 방법? 더 많은 코드와 실제로 유효한 JS 인 데이터의 실제 사례를 보여주십시오. 표시하는 데이터의 경우,'data = data [0]'을 실행 한 후에'data.links '라고하면 링크 배열이 주어 지므로 각 링크에'data.links [0] ]'등. (그런데 JSON은 문자열 형식입니다.) – nnnnnn
@nnnnnn : 문제를 명확히하기 위해 질문을 편집했습니다. – graphmeter