gpt4 book ai didi

javascript - 解析后保持对象在 JSON 字符串中的顺序

转载 作者:搜寻专家 更新时间:2023-11-01 04:53:59 26 4
gpt4 key购买 nike

我从 API 函数收到以下 JSON 字符串。

"Inbound": {
"callRelatedFields": ["ANI",
"DNIS"],
"objects": {
"Contact": [{
"displayName": "Name",
"apiName": "Name"
},
{
"displayName": "Email",
"apiName": "Email"
}],
"Account": [{
"displayName": "Account Name",
"apiName": "Name"
},
{
"displayName": "Phone",
"apiName": "Phone"
},
{
"displayName": "Fax",
"apiName": "Fax"
}],
"cnx__Phone__c": [{
"displayName": "Phone Name",
"apiName": "Name"
},
{
"displayName": "Phone Number Line 1",
"apiName": "cnx__Phone_Number_Line_1__c"
},
{
"displayName": "Phone Number Line 2",
"apiName": "cnx__Phone_Number_Line_2__c"
},
{
"displayName": "Type",
"apiName": "cnx__Type__c"
},
{
"displayName": "Location",
"apiName": "cnx__Location__c"
},
{
"displayName": "Call Manager",
"apiName": "cnx__Call_Manager__c"
},
{
"displayName": "Mac Address",
"apiName": "cnx__Mac_Address__c"
}]
},
"screenPopSettings": {
"screenPopsOpenWithin": "ExistingWindow",
"SingleMatch": {
"screenPopType": "PopToEntity"
},
"NoMatch": {
"screenPopType": "DoNotPop"
},
"MultipleMatches": {
"screenPopType": "DoNotPop"
}
}
}

"objects" 中对象的顺序很重要!但是当我用 JSON.parse 解析这个 JSON 字符串时,这些对象的顺序丢失了。

有什么好的方法可以在解析后保持这些对象的顺序。

我试图操纵字符串并将整个 “objects” 转换为一个数组,但事实证明这变得太复杂和 hacky。

最佳答案

我怀疑让您认为键已更改顺序的是 Chrome 开发工具显示的对象的键按字母顺序排序。而如果您使用 Object.keys() 或等效的 JS 手动遍历键,您会发现它们按照它们在 JSON 字符串中定义的顺序出现。

Screenshot from Chrome devtools

这是 Object.keys() 的等效 JS :

function objectKeys(obj) {
var keys = [];
if (!obj) return keys;
for (var key in obj) {
if (obj.hasOwnProperty(key)) {
keys.push(key);
}
}
}

当我用解析对象的 objects 部分调用它时,我得到以下数组:

["Contact", "Account", "cnx__Phone__c"]

关于javascript - 解析后保持对象在 JSON 字符串中的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32006162/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com