Arrays 角度:如何识别id为';s

Arrays 角度:如何识别id为';s,arrays,json,angular,object,Arrays,Json,Angular,Object,为了简化我的问题,我将其分解如下: 我所理解的 如果这是我的目标: { things: [{ 'text': 'version' 'short': 'v', 'order': 1, 'id': 'A' },{ 'text': 'update' 'short': 'u', 'order': 2, 'id': 'B' }] }

为了简化我的问题,我将其分解如下:

我所理解的 如果这是我的目标:

{ 
     things: [{
         'text': 'version'
         'short': 'v',
         'order': 1,
         'id': 'A'
     },{
         'text': 'update'
         'short': 'u',
         'order': 2,
         'id': 'B'
     }]
}
…这是我的类型类:

 export class Thing {
     text: string;
     short: string;
     order: number;
     id: string;
 }
我不明白的是 如果这是我的数据:

 { things: {
         'A': {
             'text': 'version'
             'short': 'v',
             'order': 1,
             'id': 'A'
         },
         'B': {
             'text': 'update'
             'short': 'u'
             'order': 2
             'id': 'B'
         }
     }
 }
…那么类型类是


我尝试过一些真正有创意的、无效的尝试,但都没有成功。我还希望我能理解如何使用这个非数组(没有方括号)。如果这是重复的,请道歉。

在第二种情况下,您的
things
类型如下:

interface ThingHolder {
    [key: string]: Thing;
}
也就是说,键是字符串,值是
Thing
s

数据
的接口将具有该类型的
things
属性:

interface AppropriateNameHere {
  things: ThingHolder;
}
因此,编译器对此感到满意:

const data : AppropriateNameHere = {
  things: {
    'A': {
      'text': 'version',
      'short': 'v',
      'order': 1,
      'id': 'A'
    },
    'B': {
      'text': 'update',
      'short': 'u',
      'order': 2,
      'id': 'B'
    }
  }
};

在TypeScript平台上。

JSON是用于数据交换的文本表示法。如果您处理的是JavaScript源代码,而不是字符串,那么您就不是在处理JSON。太棒了!非常感谢!