我没有实现太多 JSON,所以我很好奇是否有建议的方法来处理数据。我猜有两种主要方法(也许它们是无效的 JSON),但我想看看是否有任何额外的优点/缺点,或者更好的方法?
方法 1:键/值对的组合
var all_in_one = { "person" : [{
"firstName" : "John",
"lastName" : "Smith",
"phone" : [{
"areaCode" : "800",
"number" : "222-3333"
},
{
"areaCode" : "800",
"number" : "222-3334",
"extension" : "1111"
}]
},
{
"firstName" : "John",
"lastName" : "Rolfe"
},
{...}],
"other" : [{...}]
};
好处:
- 键接近值(循环和拉取值时代码更直观、更清晰)
- 不需要值/键(流体模型/结构)
问题:
- 多条记录的更多开销(重复键)
方法 2:键与值的分离
var json = { "model" : { "person" : ["firstName","lastName",["areaCode","number","extension"]],
"other" : [...]
},
"data" : { "person" : [["John","Smith",[["800","222-3333",undefined],
["800","222-3334","1111"]]],
["John","Rolfe",[[undefined,undefined,undefined]],
[...]
],
"other" : [...]
}
};
好处:
- 更少的开销(键定义一次)
- 可在一处更改的静态模型/结构
问题:
- 如果预期会发生变化,静态模型/结构可能会出现更多问题
- 提取数据时代码可能更混乱