2013-04-27 2 views
0

아직 설정되지 않은 구조의 JSON 파일이 있습니다. 그것은 복잡하게 자랄 수 있습니다. 함수가 데이터 구조를 어떻게 생각하는지 추적하고 싶습니다.함수가 특정 JSON 데이터 구조에 연결되었음을 보여주는 표준 방법은 무엇입니까?

기능이 특정 데이터 구조에 연결되었음을 보여주는 표준/현명한 방법은 무엇입니까?

지금, 나는 버전 번호를 유지하기 위해 JSON 파일에 _comment를 사용하고, 다음을 사용하는 각 기능에서 주석으로 해당 버전의 이름을 유지. 전체 예제.

travel.json

{ 
    "_comment" : "version 1.0" 
, "name" : "Tom Sawyer" 
, "travel" : [{ 
    "id" : "1" 
, "location" : "San Francisco" 
    }, { 
    "id" : "2" 
, "location" : "London" 
    }] 
} 

두 기능은 구문 분석 : travel.json

fs = require('fs'); 

function get_json() { 

    var file = __dirname + '/travel.json'; 
    data = fs.readFileSync(file, 'utf8'); 
    var json_obj = JSON.parse(data); 
    return(json_obj); 

}; 

function get_location(json_obj) { 
    // "version 1.0" 

    var new_obj = {}; 
    json_obj.content.forEach(function(item) { 
     new_obj[item.id] = item.location; 
    }); 
    return (new_obj); 

}; 

// Run 
console.log('Locations: ', get_location(get_json())); 

감사합니다.

+0

이유를 설명해 주시겠습니까? 방어적인 프로그래밍처럼 보입니다. 다른 사람들이 의존하는 API를 작성한다면 JSON 대신 API의 URL을 버전화할 수 있습니다. yoururl/api/1/locations, yoururl/api/2/locations 등과 같은 것 – Pickels

+0

모든 것이 약간의 방어력을 갖기 때문에 배우고 있습니다.; D 나는 당신의 제안을 좋아합니다! 더 우아하고 관리하기가 쉽습니다. 주변에 흩어져있는 작은 주석 줄이 없습니다. –

+0

방어 프로그래밍과 조기 최적화는 악마입니다. – Pickels

답변

1

방어 프로그래밍과 비슷합니다. 다른 사람들이 의존하는 API를 작성한다면 JSON 대신 API의 URL을 버전화할 수 있습니다. yoururl/api/1/locations, youurl/api/2/locations 등과 같은 것

+0

Super. 똑똑한 추천. –

관련 문제