【问题标题】:Accessing JSON object properties directly and log it直接访问 JSON 对象属性并记录它
【发布时间】:2016-11-04 00:35:23
【问题描述】:

我正在尝试直接访问 JSON 对象属性并记录它,这是我的功能:

loadProcesses(filter?){

this._postService.getAllProcess(filter)
.subscribe(
    res=> {
        this.processListe = res;
       // console.log(this.processListe.)
    }
,null,
() =>{
    console.log("get processes liste" + filter)

});

所以this.processListe包含一个JSON Object,而我的JSON格式是这样的:

{"Person": {
   "id": "A256",
   "name": "GET",
   "status": "active",
   "description": "hardworking, openminded",
   ...

所以它将包含完全相同的内容,例如,如果我想简单地在控制台日志上打印标签,我该怎么做??

【问题讨论】:

  • 我在下面的回复中添加了一个更好的解决方案:)

标签: json typescript angular


【解决方案1】:

更好的解决方案是使用 any 声明您的响应:

loadProcesses(filter?){

this._postService.getAllProcess(filter)
.subscribe(
    (res: any)=> {
        this.processListe = res;
       // console.log(this.processListe.)
    }
,null,
() =>{
    console.log("get processes liste" + filter)

});

这样您就可以访问响应中的任何属性

【讨论】:

    【解决方案2】:

    您是否正在寻找这样的东西:

    function parseObject(obj)
    {
       for(var key in obj)
       {
          console.log("key: " + key + ", value: " + obj[key])
          if(obj[key] instanceof Object)
          {
            parseObject(obj[key]);
          }
       }
    }

    只需在 subscribe 方法中调用 parseObject(res)。

    【讨论】:

    • 谢谢你,它确实只显示了第一个 Propretie,它是一个包含它自己属性的对象,请问在这种情况下我如何访问子属性??
    • 编辑了我的答案以支持嵌套 json
    • 非常感谢,我会根据需要对其进行修改,再次感谢您
    【解决方案3】:

    在 .subscribe 中解析它:

    res => this.processListe = res.json();
    

    【讨论】:

    • 谢谢你的回答,我遇到了这个错误:angular2.dev.js:1206 Uncaught TypeError: res.json is not a function,这是我的新函数:.subscribe( res= > { this.processListe = res.json(); console.log("++++ value is :++++++++" + this.processListe.id); }
    【解决方案4】:

    解析它并访问字段。

    var obj = JSON.parse(filter);
    obj.Person.id; 
    //etc
    

    【讨论】:

    • 我确实改变了我的功能,正如你提到的,我有这个错误:angular2.dev.js:1206 Uncaught SyntaxError: Unexpected token o in JSON at position 1,这就是我所做的: subscribe( res=> { this.processListe = res; this.obj = JSON.parse(res); console.log("++++ value is :++++++++" + this.obj.id ); }
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多