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월
원래 코드가 변경되었습니다.그래서 바네임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
Chumkiu의 답변은 나에게 효과가 있었지만 몇 가지 수정이 필요했다.d3 버블차트의 최신 버전에서는 다음과 같이 json이 아닌 root를 정의할 필요가 있다.
root = JSON.parse( myjson );
또는 나머지 코드에서 "root"을 "json"으로 대체할 수도 있습니다. :-)
로컬 데이터 세트를 사용하는 d3 노드 링크 트리에 대한 질문을 받고 이 답변을 받으신 모든 분께 이 답변은 매우 도움이 되었습니다.이 페이지에는 많은 기고가들이 참여해 주셔서 감사합니다.
이 예에 따르면:
http://phrogz.net/JS/d3-playground/ #StockPrice_HTML
여기에서는 그래프 데이터를 변수 $data 내에 저장하고 .data($data) 함수를 통해 설정합니다.
당신이 사용하는 그래프에 이 방법을 적용하겠습니다.
언급URL : https://stackoverflow.com/questions/10934853/d3-js-loading-json-without-a-http-get
'source' 카테고리의 다른 글
angular.js에 history.back()을 구현하는 방법 (0) | 2023.03.25 |
---|---|
select with union 및 CLOB 필드를 사용할 때 오류 ORA-00932 (0) | 2023.03.25 |
반응 오류:스타일 프롭 값은 개체 반응/스타일 프롭 개체여야 합니다. (0) | 2023.03.25 |
Junit 테스트 클래스 전체에서 스프링 애플리케이션 컨텍스트 재사용 (0) | 2023.03.25 |
ReactJs - 새로운 useStateRespect 후크의 preState? (0) | 2023.03.25 |