我想用Typescript解析JSON,对象名称可能会有所不同,而我却无从知晓。例如:
{
"planets": {
"Alderaan": {
"available_items": {
"Cinamone": {
"available": 74,
"buy_price": 6,
"sell_price": 6
},
"Dwimeryt": {
"available": 42,
"buy_price": 12,
"sell_price": 11
}
}
}
}
可以有很多名字不同的行星。
我发现,为了成功解析JSON对象,我们需要具有相应的变量名,例如,它可以工作:
interface MyObj {
x: number;
y: number:
}
let json_string = `{
"x": 5,
"y": 12
}`;
let test: MyObj = JSON.parse(json_string);
但是,如果我们将接口中的变量名称从“ x”更改为“ xx”,则在解析后它变得不确定。如果我们不知道所有JSON对象名称,那将造成看似无法解决的问题,因为我无法使用所有行星名称创建一个接口。我想念什么吗?您将如何解析我发布的JSON?
答案 0 :(得分:0)
您对JSON本身有影响吗?在我看来,这不是使用JSON的最佳方法。如果我要设计这个,您的JSON看起来会更像这样:
{
"planets": [
{
"name": "Alderaan",
"available_items": [
{
"name": "Cinamone",
"available": 74,
"buy_price": 6,
"sell_price": 6
}, {
"name": "Dwimeryt",
"available": 42,
"buy_price": 12,
"sell_price": 11
}]
}]
}
这样,您将始终知道字段的名称及其类型。我不认为使用当前的JSON格式可以轻松实现这一目标。