以角度 6 处理 json 对象

Posted

技术标签:

【中文标题】以角度 6 处理 json 对象【英文标题】:Handling json objects in angular 6 【发布时间】:2019-03-01 02:06:07 【问题描述】:

我得到一个像下面这样的 json 对象

 response = [

  'a': [
    
      'b': [
        
          'c': [
            
              'name': 'abc',
              'value': 900
            
          ]
        
      ]
    
  ]
,

  'a': [
    
      'b': [
        
          'c': [
            
              'name': 'abc',
              'amount': 900
            
          ]
        
      ]
    
  ]

];

现在我正在使用下面的代码循环对象

this.response.forEach(
    (event) => 
      event.a.forEach(
          () => 

          
      );
    
)

在编译时我收到一条错误消息

error TS2349: Cannot invoke an expression whose type lacks a call signature. Type '((callbackfn: (value:  'b':  'c':  'name': string; 'value': number; []; []; , index: number...' has no compatible call signatures.

上述错误的任何修复?提前致谢

【问题讨论】:

***.com/questions/39691889/… 是什么给了你这样的回应? 可能是因为您在内部 forEach 中使用了无参数 lambda () => ... 。使用(b) => ... 可能会解决问题。 【参考方案1】:

这是访问 c.namec.amount

的方式
response.forEach(element => 
      element['a'].forEach(a => 
           a['b'].forEach(b => 
               b['c'].forEach(c => 
                     console.log(c.name);
                     console.log(c.amount);
               );
            );
      );
 );

JSFiddle => https://jsfiddle.net/jpwga2du/

【讨论】:

【参考方案2】:
this.response.forEach((el1: any) => 
  el1.a.forEach((el2: any) => 
    el2.b.forEach((el3: any) => 
      el3.c.forEach(el4 => 
        console.log(el4)
      );
    );
  );
);

【讨论】:

以上是关于以角度 6 处理 json 对象的主要内容,如果未能解决你的问题,请参考以下文章

如何以角度4打印角度对象

使用 json 对象列表以角度生成层次结构视图

如何以角度将数组推送到 JSON 对象

以角度 5 在 HTML 上显示来自 json 对象的数据

如何以角度将 JSON 对象数组转换为 Observable 数组

角度处理json对象编译但抛出错误