-1
나는 D3에서로드 JSON은과 같이 수행이 오류를 생성하지 않는 것을 알고 :D3을 사용하여이 JSON 데이터에 액세스하려면 어떻게해야합니까?
이 블록 내부d3.json("sample_data/unique_items.json", function(json) {
// do something
});
, 나는 다음 json
변수를 사용하여 JSON 파일을 참조합니다. 다음은 JSON의 샘플 구조입니다.
{
"unique_items": [
{
"name": "Blah",
"items": [
{"id": 1, "note": "blah"},
{"id": 2, "note": "blah blah"},
{"id": 3, "note": "blah blah blah"}
]
},
{
"name": "Blah2",
"items": [
{"id": 1, "note": "blah"},
{"id": 2, "note": "blah blah"},
{"id": 3, "note": "blah blah blah"}
]
}
]
}
이 구조의 항목에 액세스하는 방법에 어려움을 겪고 있습니다. 그래서 예를 들어 나는 이것을 시험으로 시도했다 :
for (var item in json["unique_items"]) {
if (json["unique_items"].hasOwnProperty(item)) {
console.log(item["name"]); // 'undefined' error on this line
}
}
위와 같이 주석 된 행에 정의되지 않은 오류가 발생한다. 나는 콘솔에서 볼 기대 : 나는 console.log(item.name);
에 그 라인을 변경하려하지만이 같은 오류가 발생
Blah
Blah2
. 그런 다음 간단히 console.log(item);
으로 변경했으며 콘솔 출력은 0
입니다. 나는 이것을 이해하지 못한다.
그래서 제 질문은 다음과 같습니다
- 가 어떻게
unique_items
내 요소에 액세스합니까? - json을 구조화하는 더 좋은 방법이 있습니까?
그것을 해결 그! 그 때 무슨 일이 일어 났는지 봅니다. 첫 번째 반복은 배열 (0)에서 인덱스/위치를 가져오고 배열 내의 해당 인덱스를 사용하여 해당 항목에 액세스해야합니다. 고맙습니다! – Dan
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...of에서 for .. 대신 .. of .. ..를 사용했다면 올바른 아이디어를 얻었을 것입니다. –