如何比较object(json)和Model(javascript类)

时间:2017-12-27 09:27:49

标签: javascript json angular typescript

我现在正在使用角度2。 我有一些数据

data: MyModel[] = [
{
  id: 1,
  name: 'Name',
  secondName: 'SecondName'
}

MyModel也是界面:

interface MyModel {
id: number,
name: string,
secondName: string

让我们想象一下,我从后端(对象json)收到数据:

{
id: 2,
FIRSTname: 'FName',
secondName: 'SecondName'
}

如何验证对象中的键是否等于我的界面?

例如field" FIRSTname"是不正确的,那么我应该抛出异常或其他东西。

2 个答案:

答案 0 :(得分:2)

也许在打字稿中有更好的方法,你可以在es6中做到:



const data = [
  {
    id: 2,
    name: 'FName',
    secondName: 'SecondName'
  },
  {
    name: 'foo',
    secondName: 'bar'
  },
];
const validate = ({id, name, secondName}) => id && name && secondName

const validData = data.filter(validate)
console.log(validData);




如果其中一个值为:id,name,secondName为null,那么该软件将返回false。

答案 1 :(得分:0)

如果我说您可以定义一个实现模型接口的变量obj并初始化其所有属性然后将obj的键与后端数据进行比较,请将其命名为respDataObj

render(){
    return(
        <ContentSection popTrigger={this.popTrigger} value={"test1"} />
    )
}

比较功能礼貌:https://stackoverflow.com/a/6229258/2791802