Angular 6:如何将JSON字符串添加到现有JSON字符串数组?

时间:2018-09-20 21:29:24

标签: arrays json angular typescript angular6

所以我有一个Typescript组件,其构造函数如下所示:

eamon.white7@gmail.com does not have storage.objects.get access to gcf-upload-us-central1-42327ef0-9b18-406c-9b7e-7b716bb814f8/d84bdea4-ba16-4260-93c8-c46c2d4066f0.zip

,如您所见,它创建了一个字符串数组并将其存储在值中。稍后,我将在html中显示此字符串[],并显示以下代码段

constructor(private http: HttpClient) {
    this.http.get('/api/values/users').subscribe(result => {
      this.values = result as string[];
    }, error => console.error(error));
  }

问题是我以后想以JSON格式向字符串数组添加新元素。但是当我写

<tr *ngFor="let value of values; index as i">
      <td>
        <input [(ngModel)]="value.id" class="form-control" type="text" name="{{value.id}}" />
      </td>
</tr>

它与JSON格式不匹配,因此字符串变为:

this.values.push("{id: 1, username: , firstName: , lastName: , token: ,}");

请注意,最后一个值周围有两个qoutes。这样一来,前面提到的* ngFor不会以JSON格式出现,而只是认为这里的第四个对象只是一个常规字符串。 请帮帮我!

2 个答案:

答案 0 :(得分:0)

字符串JSON的格式缺少引号。 尝试以下语法:

this.values.push(JSON.parse('{"id": "1", "username": null, 
"firstName": null, "lastName": null, "token": ","}'))

答案 1 :(得分:0)

您必须执行Object.assign()。这是一个示例,它将您返回的值对象与上面具有新元素的新对象合并。

this.values= Object.assign({},this.values,{newElementFieldName: this.newObject});