【发布时间】:2019-12-04 13:57:54
【问题描述】:
注意:这是一个 NodeJs 应用程序
我有以下存储问题和答案的 JSON 对象:
{
"id": "SOME_GUID",
"questions": {
"page-1": {
// ... JSON schema for page 1.
},
"page-2": {
// ... JSON schema for page 2.
}
},
"answers": {
"page-1": {
"page-1-question-1": "something"
},
"page-2": {
"page-2-question-1": true,
"page-2-question-2": "foo"
},
}
}
以特定方式表示数据优于另一种方式是否有好处?我自然会选择一个简单的键/值对表示法(如下所示),因为它似乎符合这里的要求。但是我在野外(在用 Java 编写的项目中)看到了“数组表示法”(如下所示)
键/值对符号(我自然会使用):
{
"meta": {
"createdData": "some date",
"modifiedData": "some date",
"referenceNumber": "some reference number",
"type": "some type code"
}
}
或
“数组”表示法
{
"meta": [
{
"key": "createdDate",
"value": "some date"
},
{
"key": "modifiedData",
"value": "some date"
},
{
"key": "referenceNumber",
"value": "some reference number"
},
{
"key": "type",
"value": "some type code"
},
]
}
【问题讨论】:
-
您使用什么语言/框架?这可能会对您收到的答案产生很大影响。例如,在 JS 中,对象方法将为您提供可以直接引用的属性。在 C# 中,对象方法需要哈希和查找,但仍然(通常)比数组迭代更快。此外,您的数据大小可能会起作用。
-
这是用 Node.js 编写的。它通常是一个小数据集。
-
您已将此问题标记为属于JSON:API specification。这一点非常清楚您应该如何表示资源。这是偶然的,还是您询问了为什么要遵循该规范?
-
对不起。那是个意外。我在这个项目中使用 JSON:API,但这个特定文件不需要遵守这些标准。
标签: node.js json metadata jsonschema json-api