【问题标题】:What are standard ways to show that your functions are connected to a certain JSON data structure?显示您的函数连接到某个 JSON 数据结构的标准方法是什么?
【发布时间】:2013-04-21 20:14:51
【问题描述】:

我有一个尚未设置结构的 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() ));

谢谢。

【问题讨论】:

  • 你能解释一下你为什么这样做吗?它看起来有点像防御性编程。如果您正在创建其他人将依赖的 API,您可以版本化 API 的 url 而不是 JSON。类似于 yoururl/api/1/locations、yoururl/api/2/locations 等
  • 我正在学习,所以一切都感觉有点防御性。;我喜欢你的建议!它更优雅,更易于管理。没有散​​落在各处的小注释行。
  • 防御性编程和过早优化是魔鬼。
  • 是的,是的。据我所知。任何关于如何不成为防御性程序员的示例的好读物 - 博客文章?
  • @Pickels 你能把你在第一个陈述中写的东西写成答案吗?我会接受它,所以问题有一个正式的绿色复选标记。

标签: json node.js parsing


【解决方案1】:

它看起来有点像防御性编程。如果您正在创建其他人将依赖的 API,您可以版本化 API 的 url 而不是 JSON。像 yoururl/api/1/locations、yoururl/api/2/locations 等

【讨论】:

  • 超级。智能推荐。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-01
  • 2018-08-13
  • 1970-01-01
  • 1970-01-01
  • 2012-10-07
  • 2012-08-23
相关资源
最近更新 更多