JSON 格式中元素顺序问题
在编写代码时,遇到 json 序列化的结果顺序与预期不一致的问题。
具体表现为:
- 数据库查询结果的顺序为:17冬首次快单订货、17冬2次订货、18春正单订货。
- API 返回的 JSON 格式也是如此。
- 然而,通过 ajax 请求后,JSON 中元素的顺序却变成了:17冬2次订货、17冬首次快单订货、18春正单订货。
由于需要按照数据库查询结果的顺序,因此需要解决这个问题。
解决方案
JSON 中的 key-value 并不保证顺序。如果需要维护顺序,可以考虑将数据存放在数组中。
在 API 返回时,如果是文本格式,可以按照所需的顺序排列字符串。但如果已经转换为对象,则对象中的 key 顺序无法维持,需要另外的数据结构来保存顺序,例如数组。