(不能在单个陈述中总结问题,因此标题不明确)
我通过 Angular Typescript 创建一个JSON结构,其中当用户与组件的某些部分交互时,JSON结构会更新。
最初,正在考虑的JSON默认设置为以下内容:
{
"keyword": {
"value": "product",
"type": "main"
}
}
例如,用户选择一些参数Name
。一旦用户遵守UI中的某些步骤,JSON结构就会更新为以下内容:
{
"keyword": {
"value": "product",
"type": "main"
},
"Name": {
"value": " <hasProperty> Name",
"type": "dataprop"
}
}
用户为dryTime
之类的参数选择数值后,JSON会更新为以下内容:
{
"20": { // WHY WOULD 20 be here?
"value": "<hasValue> 20",
"type": "fValue"
},
"keyword": {
"value": "Varnish",
"type": "main"
},
"Name": {
"value": " <hasProperty> Name",
"type": "dataprop"
},
"dryingTime": {
"value": " <hasProperty> dryingTime",
"type": "dataprop"
}
}
我知道JSON是一个无序数据结构。但之前类似的东西的实现实际上运行良好,即此前的值20
之前为20.0
,并且在我的JSON中dryingTime
之后显示。
顺序对我来说至关重要,因为我使用for
循环解析上述JSON中的所有键并将其存储在数组中。此数组需要按用户交互的顺序显示所有键。
如果我决定继续使用JSON而不是使用数组来存储此类交互,我在哪里出错?
答案 0 :(得分:0)
是的,JSON字段是无序的。 JSON数组是有序的。
如果你想保持元素的顺序,你可以像这样构建你的JSON:
{
"keyword": {
"value": "Varnish",
"type": "main"
},
"props": [
{
"name": "dryingTime",
"value": 20
},
{
"name": "anotherOrderedField",
"value": "fieldValue"
}
]
}