You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取JSON Web Service返回对象的属性键顺序?

获取JSON对象属性的原始顺序并转为数组

JavaScript 实现

ES6及后续版本中,对象属性会保留插入顺序(数字类型键除外,这类键会被自动排序),可以直接通过原生API获取顺序并转为数组:

// 假设接口返回的对象为responseObj
const responseObj = { "id": 12, "name": "xxx", "age": 12 };

// 获取按原始顺序的属性键数组
const keyArray = Object.keys(responseObj);
// 输出:["id", "name", "age"]

// 获取按原始顺序的键值对数组
const entryArray = Object.entries(responseObj);
// 输出:[["id",12], ["name","xxx"], ["age",12]]

注意:若JSON包含数字类型键(如{"2": "a", "1": "b"}),数字键会被强制排序,这是JavaScript的固有特性,无法规避。

Python 实现

Python 3.7+版本的字典默认保留插入顺序,直接解析JSON即可:

import json

# 假设接口返回的JSON字符串为json_str
json_str = '{"id": 12, "name": "xxx", "age": 12}'
response_dict = json.loads(json_str)

# 获取按原始顺序的属性键数组
key_array = list(response_dict.keys())
# 输出:["id", "name", "age"]

# 获取按原始顺序的键值对数组
entry_array = list(response_dict.items())
# 输出:[("id",12), ("name","xxx"), ("age",12)]

如果使用Python 3.6及更早版本,需要借助OrderedDict确保顺序:

from collections import OrderedDict
import json

response_dict = json.loads(json_str, object_pairs_hook=OrderedDict)

核心注意事项

  • 不同编程语言对对象/字典的顺序支持存在版本差异,需确认所用语言的版本特性(比如Python 3.7前不保证字典顺序,ES6前的JavaScript也不保证)。
  • 必须通过正规JSON解析器处理接口返回的JSON字符串,禁止手动拆分字符串,否则会在属性值包含特殊字符(如逗号)时出现错误。

内容的提问来源于stack exchange,提问作者u936293

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 10:19:55