首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Angular 4-将JSON映射到模型,反之亦然

Angular 4-将JSON映射到模型,反之亦然
EN

Stack Overflow用户
提问于 2017-06-15 11:44:47
回答 0查看 5.2K关注 0票数 3

我需要在Angular 4应用程序中调用POST作为REST服务。rest服务在请求体中需要一个JSON。

我使用Angular构建的JSON基于一些用户输入,如下所示

代码语言:javascript
复制
{
    "val-type": "prop",
    "val-name": "prop1",
    "op-ter": "DIFF",
    "value": "Unknown",
    "match-twice": false,
    "case-sensitive": false
}

在我的代码中,我将这个json创建为

代码语言:javascript
复制
let jsonSubpart = {
      "val-type": userInput.valtype,
      "val-name": userInput.valname,
      "op-ter": userInput.opter,
      "value": userInput.val,
      "match-twice": false,
      "case-sensitive": false
    }

我希望我可以为这个结构创建一个模型,以确保json结构得到遵守。因此,我继续创建了一个model.ts文件,如下所示

代码语言:javascript
复制
export class SubPart {
    public valType: string;
    public valName: string;
    public opTer: string;
    public value: string;
    public matchTwice: boolean = false;
    public caseSensitive: boolean = false;

    constructor(valType: string, valName: string, opTer: string, value: string,
        matchTwice: boolean, caseSensitive: boolean) {
        this.valType=valType;
        this.valName= valName;
        this.opTer=opTer;
        this.value = value;
        this.matchTwice=matchTwice;
        this.caseSensitive = caseSensitive;
    }
}   

我的想法是在构造json时使用这个模型。

代码语言:javascript
复制
import { Subpart} from './subpart.model.ts';

let jsonSubpart: Subpart = {
      "val-type": userInput.valtype,
      "val-name": userInput.valname,
      "op-ter": userInput.opter,
      "value": userInput.val,
      "match-twice": false,
      "case-sensitive": false
    }

但是,这不会起作用,因为json中的字段名和类不匹配。因此,angular不会知道val-type与valType相同。我不能将.ts文件中的变量名保留为val类型,因为由于'-‘,它不是有效的变量名。

想听听专家的意见,在这种情况下最好的方法是什么?我是否应该只构造json而不用担心类,或者有没有其他方法来获得这种强类型?

EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44558164

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档