JSON哲学

标签 json mongodb

<分区>

我爱上并痴迷于 JSON。我正在使用 node.js 和 mongodb,我在两种不同的哲学之间左右为难。

1

{
    "app":{
        "keys":{
            "facebook":{
                "apikey":"1412v5l1v5jv5j1h2v5",
                "sharedsecret":"v5j12hv51hc4v123vmnv",
            },
            "twitter":{
                "apikey":"3241bly5vlv1l2hjv51",
                "sharedsecret":"gxdz1n25f1m235xm1235",
            }
        }
    }
}

2

{
    "app":{
        "keys":{
            "facebook_apikey":"1412v5l1v5jv5j1h2v5",
            "facebook_sharedsecret":"v5j12hv51hc4v123vmnv",
            "twitter_apikey":"3241bly5vlv1l2hjv51",
            "twitter_sharedsecret":"gxdz1n25f1m235xm1235",
        }
    }
}

3甚至

{
    "app":{
        "facebook_apikey":"1412v5l1v5jv5j1h2v5",
        "facebook_sharedsecret":"v5j12hv51hc4v123vmnv",
        "twitter_apikey":"3241bly5vlv1l2hjv51",
        "twitter_sharedsecret":"gxdz1n25f1m235xm1235",
    }
}

使数据更加复杂

{
    "app":{
        "keys":{
            "facebook":{
                "production":{
                    "apikey":"1412v5l1v5jv5j1h2v5",
                    "sharedsecret":"v5j12hv51hc4v123vmnv",                  
                },
                "development":{
                    "apikey":"1412v5l1v5jv5j1h2v5",
                    "sharedsecret":"v5j12hv51hc4v123vmnv",                  
                },
            },
            "twitter":{
                "production":{
                    "apikey":"1412v5l1v5jv5j1h2v5",
                    "sharedsecret":"v5j12hv51hc4v123vmnv",                  
                },
                "development":{
                    "apikey":"1412v5l1v5jv5j1h2v5",
                    "sharedsecret":"v5j12hv51hc4v123vmnv",                  
                },
            }
        }
    }
}

或者

{
    "app":{
        "keys":{
            "production":{
                "facebook":{
                    "apikey":"1412v5l1v5jv5j1h2v5",
                    "sharedsecret":"v5j12hv51hc4v123vmnv",
                },
                "twitter":{
                    "apikey":"1412v5l1v5jv5j1h2v5",
                    "sharedsecret":"v5j12hv51hc4v123vmnv",
                },
            },
            "development":{
                "facebook":{
                    "apikey":"1412v5l1v5jv5j1h2v5",
                    "sharedsecret":"v5j12hv51hc4v123vmnv",
                },
                "twitter":{
                    "apikey":"1412v5l1v5jv5j1h2v5",
                    "sharedsecret":"v5j12hv51hc4v123vmnv",
                },
            },
        }
    }
}

你应该去多深?有没有太远或太远的东西?

最佳答案

我会选择以下内容,实际上确实选择了与以下内容非常相似的内容:

{
    "app":{
        "production":{
            "facebook":{
                "apikey":"1412v5l1v5jv5j1h2v5",
                "sharedsecret":"v5j12hv51hc4v123vmnv",
            },
            "twitter":{
                "apikey":"1412v5l1v5jv5j1h2v5",
                "sharedsecret":"v5j12hv51hc4v123vmnv",
            },
        },
        "development":{
            "facebook":{
                "apikey":"1412v5l1v5jv5j1h2v5",
                "sharedsecret":"v5j12hv51hc4v123vmnv",
            },
            "twitter":{
                "apikey":"1412v5l1v5jv5j1h2v5",
                "sharedsecret":"v5j12hv51hc4v123vmnv",
            },
        }
    }
}

当我设计一个系统时,我希望创建能够处理多种不同情况的通用代码。这通常意味着在设计中创造一致性。

以上内容允许您创建一个查找“应用程序”的例程,然后选择一个操作环境,“生产”或“开发”。然后可以将其交给另一个功能,并要求找到您关心的特定服务,“facebook”、“twitter”或诸如“foursquare”之类的新服务。然后,无论传入的对象如何,单个 oAuth 函数集都可以处理授权过程,因为它始终能够请求“apikey”和“sharesecret”,而不管正在使用哪种服务。

说到 Mongo 甚至 Javascript 的灵 active ……我喜欢这种灵 active 。它使我们能够有效地解决在其他工具集中更困难的问题。但是,如果您要获得代码效率和易于调试,就需要尽可能多地调和这种灵 active 和一致性。

关于JSON哲学,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12124729/

相关文章:

javascript - 在ajaxform之外管理json数据

java - 当我自定义 addCorsMappings() 时,在 Json 中转换 java-object (dto) 期间,转换日期会中断

c# - 从azure函数连接到MongoDB

c# - 无法在 MongoDb 集合查询中将 ObjectId 反序列化为 String

MongoDB 嵌入式文档与系统用户配置文件的唯一 ObjectIds 引用

json - 使用 2 种嵌套类型解析 JSON

json - 使用 Python 从 MongoDB 文档创建 JSON 文件

java - 通用 JSON 对象转换

javascript - 如何合并 MongoDB 查找查询的输出?

node.js - MongoDB mongojs Node