Angular-6:将字符串转换为自定义对象的数组

Posted

技术标签:

【中文标题】Angular-6:将字符串转换为自定义对象的数组【英文标题】:Angular-6: Convert string to array of a custom object 【发布时间】:2019-11-17 23:54:06 【问题描述】:

我已经生成了这个字符串

string str = ["id":1,"name":"Angular","id":2,"name":"SpringBoot"]

我想把它转换成一个对象数组来实现:

listexps: Expertise[];
listexps = ["id":1,"name":"Angular","id":2,"name":"SpringBoot"];

Expertise类是

export class Expertise

    id: number;
    name: string;

我试过了:

let array = str .replace('[','').replace(']','').split(",").map(String);

但这并没有解决我的问题,我得到了:

"id":1,"name":"Angular","id":2,"name":"SpringBoot"

而不是

["id":1,"name":"Angular","id":2,"name":"SpringBoot"];

您对解决这个问题有什么想法吗? 非常感谢。

【问题讨论】:

【参考方案1】:

你需要的是JSON.parse;它将字符串转换为对象;

相关ts

import  Component  from '@angular/core';
export class Expertise 
  id: number;
  name: string;

@Component(
  selector: 'my-app',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
)
export class AppComponent 
  name = 'Angular';
  strIntoObj: Expertise[];

  constructor() 
    let str: string = '["id":1,"name":"Angular","id":2,"name":"SpringBoot"]';
    this.strIntoObj = JSON.parse(str);
    console.log(this.strIntoObj);
  

完成working stackblitz here

【讨论】:

您好@AkberIqbal 先生,非常感谢。它也有效。

以上是关于Angular-6:将字符串转换为自定义对象的数组的主要内容,如果未能解决你的问题,请参考以下文章

当 minifyEnabled 为 true 时,如何将 JSON 字符串转换为自定义对象?

将字符串转换为自定义<字符串>

Azure APIM:将 JSON 响应转换为自定义 XML 格式

如何在喷雾中将所有拒绝转换为自定义 json?

将 JSON 转换为自定义对象时出错

将 DataSnapshot 转换为自定义结构对象 - Swift 4