development

d3 js-http get없이 json로드

big-blog 2020. 11. 28. 09:45
반응형

d3 js-http get없이 json로드


나는 d3를 배우고있다. d3 js에 데이터를로드하는 특정 방법 이 있습니다 . 그러나 그들 모두는 HTTP GET을 만드는 것 같습니다. 내 시나리오에서는 이미 문자열에 json 데이터가 있습니다. 다른 http 요청을 만드는 대신이 문자열을 어떻게 사용할 수 있습니까? 나는 이것에 대한 문서를 찾으려고했지만 아무것도 찾지 못했습니다.

이것은 작동합니다 :

d3.json("/path/flare.json", function(json) {
    //rendering logic here
}

이제 내가 가지고 있다면 :

//assume this json comes from a server (on SAME DOMAIN)
var myjson = '{"name": "flare","children": [{"name": "analytics","children": [{"name": "cluster","children": [{"name": "MergeEdge", "size": 10 }]}]}]}'; 

d3에서 이미 계산 된 'myjson'을 어떻게 사용하고 서버에 대한 비동기 호출을 피합니까? 감사.


간단히 d3.json전화를

json = JSON.parse( myjson );

IE :

var myjson = '{"name": "flare","children": [{"name": "analytics","children": [{"name": "cluster","children": [{"name": "MergeEdge", "size": 10 }]}]}]}';

// d3.json("/path/flare.json", function(json) { #delete this line

    json = JSON.parse( myjson ); //add this line

    //rendering logic here

//} #delete this line

2013 년 9 월 업데이트

원래 코드가 변경되었습니다. 따라서 varname json은 다음 root같아야합니다 .

// d3.json("flare.json", function(error, root) { #delete this line

    root = JSON.parse( myjson ); //add this line

    //rendering logic here

//} #delete this line

이 예에 따르면 :

http://phrogz.net/JS/d3-playground/#StockPrice_HTML

여기서 그들은 $ data 변수 내에 그래프 데이터를 저장하고 .data ($ data) 함수를 통해 설정합니다.

이 방법을 사용하는 그래프에 적용합니다.


chumkiu의 답변은 저에게 잘 맞았지만 몇 가지 조정이 필요했습니다. 최신 버전의 d3 버블 차트에서는 다음과 같이 json이 아닌 루트를 정의해야합니다.

 root = JSON.parse( myjson );

또는 나머지 코드에서 "root"를 "json"으로 바꿀 수도 있습니다. :-)

로컬 데이터 세트를 활용하는 d3 노드 링크 트리에 대한 질문 으로이 답변에 오는 모든 사람 에게이 답변은 저에게 큰 도움이되었습니다.이 페이지의 기여자 덕분입니다.

참고 URL : https://stackoverflow.com/questions/10934853/d3-js-loading-json-without-a-http-get

반응형