代码之家  ›  专栏  ›  技术社区  ›  Mukil Deepthi

如何在json中解析前面没有双引号的string对象

  •  0
  • Mukil Deepthi  · 技术社区  · 6 年前

    我的角度应用程序中有一个数组,例如:

    searchTerm : any[]
    

    我有一个值为{'state':'tn'}的文本框,希望将其推送到searchTerm数组。当前,我将此项添加到服务,然后将其数组为:

      private onItemAdded(event): void {
        const filter = JSON.parse('"' + event['value'] + '"');
        this.dataService.addFilter(filter);
      }
    

    但它储存在 "{'state':'tn'}"

    在前面没有双引号的情况下,如何解析它?

    console.log('ADDED FILTER', event['value']);
    

    这里的值打印为{'state':'value'}

    但是当赋值给如下变量时,它会添加双引号

    let filter = event['value'];
    

    谢谢

    1 回复  |  直到 6 年前
        1
  •  0
  •   Artyom Amiryan    6 年前

    你为什么要用 parse ?,它用于从json转换为对象,而不是使用 stringify 将对象解析为 JSON (字符串)

    const obj = "{'state':'tn'}";
    let filter = JSON.stringify(obj);
    filter = filter.slice(1, filter.length - 1);
    console.log(filter);