【问题标题】:how to push object into jsonArray in typescript?如何在打字稿中将对象推入 jsonArray?
【发布时间】:2018-09-12 08:39:30
【问题描述】:

我正在尝试将对象推送到 typescript 中的现有 json 数据中,我是 typescript 的新手,我在 typescript 中创建了数组变量 let jsonArrayObject: boolean[] = [];并且这个 jsonArrayObject 包含 contactModel 对象,在这个对象中包含属性像 fname、lname、id、mobile。下面我尝试了代码。请帮帮我。

let jsonArrayObject: boolean[] = [];

jsonArrayObject=[{
    contactModel:{
    fname:"vboyini",
    lname:"simha",
    id:"1",
    Mobile:"99768999"
    }
}];
var modelData :String={
 fname:"vboyini2",
lname:"simha2",
id:"2",
Mobile:"799768999"
}

现在我想将作为contactModel 对象的arrayitem 转换为jsonArrayObject。我尝试了下面的代码。

this.jsonArrayObject.unshift({"contactModel":any=modelData})

上面的代码不工作。我怎么推?请帮助我任何人

【问题讨论】:

  • 这与javascript中的数组完全相同。虽然我不明白你为什么将你的 objct 声明为一个布尔数组,然后用一个 n 对象数组覆盖它。除此之外,this. 是不需要的
  • 每次提交表单我都会得到contactModel对象。我需要更新到 jsonArrauObject 的那个对象,请帮助我
  • 当我提交表单时,我会得到像这样存储的数据 var var modelData :String={ fname:"vboyini2", lname:"simha2", id:"2", Mobile:" 799768999" }:String={ fname:"vboyini2", lname:"simha2", id:"2", Mobile:"799768999" } modelData 对象分配到contactModel对象,这个contactModel对象我推入jsonArrayObject,请帮帮我
  • 嗨@Vekant B 在jsonArrayObject 数组中可以有多个对象,那么您要取消哪个对象?

标签: arrays json angular typescript


【解决方案1】:

如果您需要将对象推入数组,则无需将其声明为布尔值。

let jsonArrayObject = [];

jsonArrayObject.push({
  fname:"vboyini2",
  lname:"simha2",
  id:"2",
  Mobile:"799768999"
});

【讨论】:

  • 我想要这样的 json 对象结构:您可以像这样将 json 对象推送到数组中。 jsonArrayObject = [ contactModel:{ fname:"ABC" } contactModel:{ fname:"zyx" } ]
  • jsonArrayObject.push("contactModel" :{ fname:"vboyini2", lname:"simha2", id:"2", Mobile:"799768999" });
  • @VenkatB 这是你需要的对象数组吗?
  • 这对你有用吗@VenkatB?推入数组时必须为“contactModel”添加引号
【解决方案2】:

首先 - 你做错了。

这样声明:

    let jsonArrayObject = [];
    jsonArrayObject = [
        {
            fname: 'vboyini',
            lname: 'simha',
            id: '1',
            Mobile: '99768999'
        }
    ];
    let modelData = {
        fname: 'vboyini2',
        lname: 'simha2',
        id: '2',
        Mobile: '799768999'
    }; 

然后你可以像这样将modelData推送到Array中,或者你可以对Array进行unshift、slice、splice和做任何你想做的事情

jsonArrayObject.push(modelData);

【讨论】:

  • 现在它的格式不同了,看起来像这样:jsonArrayObject = [ 0:{fname: 'vboyini2', lname: 'simha2', id: '2', Mobile: '799768999'} ] 但我需要以下格式 jsonArrayObject = [ contactModel:{ fname:"ABC" } contactModel:{ fname:"zyx" } ]
  • 不,我只需要波纹管格式 jsonArrayObject = [ contactModel:{ fname:"ABC" } contactModel:{ fname:"zyx" } ] ,在打字稿中怎么做
  • @venkat-b 这就是你应该如何编写它来实现你想要的: let jsonArrayObject = [{ contactModel:{fname:"ABC"}},{ contactModel:{fname:"xyz" }}] 并且当你解析它时 => "[{"contactModel":{"fname":"ABC"}},{"contactModel":{"fname":"xyz"}}]" 答案更好方式,只需重命名模型数据
【解决方案3】:

您的脚本显示编译错误。 数组值的剪切类型设置为布尔值。

let jsonArrayObject: boolean[] = [];

您需要将其设置为正确的格式。

interface IContactModelData{
  fname:string;
  lname:string;
  id:string;
  Mobile:string;  
}

interface IContactModel{
  contactModel: IContactModelData   
}

let jsonArrayObject: IContactModel[] = [];

jsonArrayObject=[{
  contactModel:{
    fname:"vboyini",
    lname:"simha",
    id:"1",
    Mobile:"99768999"
  }
}];

var modelData:IContactModelData = {
  fname:"vboyini2",
  lname:"simha2",
  id:"2",
  Mobile:"799768999"
};

jsonArrayObject.push({contactModel:modelData});

【讨论】:

  • contactModel 属性不存在于 IcontactModelData 错误即将到来
【解决方案4】:

unshifting 时不需要输入对象

简单地做:

this.jsonArrayObject.unshift({"contactModel":modelData});

其中modelData 是一个变量。

【讨论】:

  • {"contactModel":modelData} in typescript not allowed ,它给出错误
猜你喜欢
  • 2021-12-17
  • 1970-01-01
  • 1970-01-01
  • 2021-03-04
  • 2021-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-17
相关资源
最近更新 更多