2016-08-30 2 views
-1

JSON 파일에서 특정 데이터를 읽고 자바 스크립트에서 해당 데이터를 다시 사용할 수있는 방법은 무엇입니까?JSON 파일 012에서 JS로 데이터를 읽고 계산하십시오.

예 : 태양계 밖에서 수천 개의 행성 기록이있는 .JSON 파일이 있습니다. JSON에는 (필자는 적어도 JSON으로 변환했을 때 CVS에서)이 모든 행성에 대한 모든 정보가 parsec 단위로 계산되었습니다.

평균이 모든 행성의 평균을 계산하고 간단한 자바 스크립트를 통해이 수치를 알리고 싶습니다.

이이 행성은 JSON에 나와있는 방법입니다

"Distance [pc]": 110.62, 
    "Effective Temperature [K]": 4742, 
    "Date of Last Update": "5/14/2014" 

내가 지금이 JSON 전문가들이 답변 수있는 쉬운 충분한 답이 될 수 JSON 아주 새로운 오전. 감사합니다.

추신 : 질문을 이해하고 답변하는 데 도움이된다고 생각하는 JSON 파일을 추가했습니다. 업로드 한 임시 파일은 URL입니다.

편집 : 당신의 JSON 문자열 형식 인 경우,이

var jsonObjects = JSON.parse("yourJsonString"); 
var distanceSum = 0; 
for(var i=0; i<jsonObjects.length;i++){ 
     var distance = jsonObjects[i]["Distance [pc]"]; 
     distanceSum = distanceSum + distance; 
    //do something with distance 

} 
alert("Average distance " + (distanceSum/jsonObjects.length)); 

수정처럼 뭔가를 할 수

[ 
{ 
    "rowid": 1, 
    "Host name": "11 Com", 
    "Number of Planets in System": 1, 
    "Planet Mass or M*sin(i)[Jupiter mass]": 19.4, 
    "Planet Radius [Jupiter radii]": null, 
    "Planet Density [g": { 
     "cm**3]": null 
    }, 
    "Distance [pc]": 110.62, 
    "Effective Temperature [K]": 4742, 
    "Date of Last Update": "5/14/2014" 
}, 
{ 
    "rowid": 2, 
    "Host name": "11 UMi", 
    "Number of Planets in System": 1, 
    "Planet Mass or M*sin(i)[Jupiter mass]": 10.5, 
    "Planet Radius [Jupiter radii]": null, 
    "Planet Density [g": { 
     "cm**3]": null 
    }, 
    "Distance [pc]": 119.47, 
    "Effective Temperature [K]": 4340, 
    "Date of Last Update": "5/14/2014" 
}, 
{ 
    "rowid": 3, 
    "Host name": "14 And", 
    "Number of Planets in System": 1, 
    "Planet Mass or M*sin(i)[Jupiter mass]": 4.8, 
    "Planet Radius [Jupiter radii]": null, 
    "Planet Density [g": { 
     "cm**3]": null 
    }, 
    "Distance [pc]": 76.39, 
    "Effective Temperature [K]": 4813, 
    "Date of Last Update": "5/14/2014" 
}, 
{ 
    "rowid": 4, 
    "Host name": "14 Her", 
    "Number of Planets in System": 1, 
    "Planet Mass or M*sin(i)[Jupiter mass]": 4.64, 
    "Planet Radius [Jupiter radii]": null, 
    "Planet Density [g": { 
     "cm**3]": null 
    }, 
    "Distance [pc]": 18.15, 
    "Effective Temperature [K]": 5311, 
    "Date of Last Update": "5/14/2014" 
}] 
enter code here 
+0

자바 스크립트를 읽을 수 있습니까? – depperm

+0

자바 스크립트 코드와 JSON 데이터의 일부를 게시하십시오. – Nhan

답변

1

다음은 JSON 코드의 덩어리의 더 : JSON 경우, 일부 엔드 포인트에 있으며 jQuery 라이브러리를 사용할 수 있습니다.

$.get('url/jsonFile.json', function(jsonObjects){ 
var distanceSum = 0; 
    for(var i=0; i<jsonObjects.length;i++){ 
      var distance = jsonObjects[i]["Distance [pc]"]; 
      distanceSum = distanceSum + distance; 
    } 
    alert("Average distance " + (distanceSum/jsonObjects.length)); 
}); 

편집 2 : 파일 구조를 가정

다음입니다 :

index.html 
jsonFile.json 

당신이 조각

Index.html을

,816,432 다음 사용해야합니다 이 당신을 도울 것입니다 10
+0

이것은 내가 원하는 것입니다. 예. 그러나 .json 파일은 로컬이며 html 및 javascript 페이지와 동일한 폴더에 있습니다. 파일의 디렉토리로 URL을 변경하는 데 문제가있어서 어떻게 보일까요? – Zhyohzhy

+0

@Zhyohzy 파일 시스템을 통해 코드를 시험해보고 있습니까? 아니면 어떤 종류의 로컬 서버를 사용하고 있습니까? 당신이 자바 스크립트에서 드라이브에 직접 파일을 읽을 수 없습니다 것을 유의하십시오. 드라이브의 index.html을 두 번 클릭하거나 localhost : 8080/index에서 방문하는 경우와 다릅니다.html – Robert

+0

네, 로컬 서버를 통해 작업하고 있습니다. 내가 질문에 연결된 filedropped에있는 파일은 당신에게 파일의 내용에 대한 몇 가지 참조를 제공하는 것이 었습니다. 꽤 큽니다. 나는 또한 같은 자바 스크립트 파일에 전체 데이터를 배치 할 수 있지만 모든 배열을해야하고 당신이 한 일에 다소 다르게 프로그래밍해야합니다. – Zhyohzhy

0

희망 ..

var data = [{ 
"rowid": 1, 
"Host name": "11 Com", 
"Number of Planets in System": 1, 
"Planet Mass or M*sin(i)[Jupiter mass]": 19.4, 
"Planet Radius [Jupiter radii]": null, 
"Planet Density [g": { 
    "cm**3]": null 
}, 
"Distance [pc]": 110.62, 
"Effective Temperature [K]": 4742, 
"Date of Last Update": "5/14/2014" 
}, { 
"rowid": 2, 
"Host name": "11 UMi", 
"Number of Planets in System": 1, 
"Planet Mass or M*sin(i)[Jupiter mass]": 10.5, 
"Planet Radius [Jupiter radii]": null, 
"Planet Density [g": { 
    "cm**3]": null 
}, 
"Distance [pc]": 119.47, 
"Effective Temperature [K]": 4340, 
"Date of Last Update": "5/14/2014" 
}] 

이제 데이터는 data[0]를 줄 필요하고 잠깐 등등 data[1] 등을 줄 필요가 첫 번째 개체를 얻을 수있는 객체의 배열입니다. 첫 번째 객체와의 거리를 얻으려면 간단히 data[0]["Distance [pc]"]을 호출하면됩니다. 데이터의 길이에 따라 for 루프를 사용하여 간단히 계산할 수 있습니다.

관련 문제