【发布时间】:2019-04-26 13:25:55
【问题描述】:
我想将 Java HashMap 转换为 javascript 数组,其中键位于 javascript 对象内。
我已尝试将 JSON 转换为带有数组的 javascript 对象。 Java Map 看起来像这样
我想从 Java 对象 (JSON) 转换为 javascript 数组的对象的快速概览。
export class Order extends Base {
public createdAt: Date;
public status: OrderStatus;
public rounds: Round[];
}
export class Round extends Base {
public lockable: boolean;
public locked: boolean;
public sequence: number;
public createdAt: string;
public orderedItems?: Item[];
}
我从服务器收到的 JSON:
[
{
"id": "87921b20-232d-4e13-8154-5ecdcdfeea83",
"createdAt": 1556284343924,
"status": "UNPAID",
"rounds": {
"1": {
"id": "ffd791b7-3575-4653-9e65-0d95ed027d37",
"createdAt": 1556284343930,
"lockable": false,
"locked": false,
"orderedItems": []
},
"2": {
"id": "310bbdff-2c41-4e22-96da-46282e158b49",
"createdAt": 1556284343936,
"lockable": true,
"locked": false,
"orderedItems": []
}
}
}
]
现在我想做的事情如下。我认为在javascript中不能保证数组的顺序,所以我想在从API获取它之后在对象中添加id。
"2": <-- MOVE SEQUENCE inside the object like:
{
...
"sequence": "2"
}
我在javascript中找不到像这样的其他解决方案,但希望您能给我一个更合适的解决方案:
order.forEach(o => {
const rounds = [];
Object.keys(o.rounds).forEach(key => {
o.rounds[key].sequence = key;
rounds.push(o.rounds[key]);
});
o.rounds = rounds;
});
【问题讨论】:
-
“我从服务器收到的 JSON”:什么服务器?你能控制它吗?
标签: javascript java hashmap