Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular2无法显示json响应_Json_Angular - Fatal编程技术网

Angular2无法显示json响应

Angular2无法显示json响应,json,angular,Json,Angular,在angular 2模板中,我无法显示json响应中的数据: { "success": true, "data": { "id": 5, "user_id": 1, "category_id": 1, "title": "ghfjhgf", "body": "jhgfjhgf", "created": "2017-01-19T18:22:02+00:00", "modified": "2017-01-19T18:22:02+00:0

在angular 2模板中,我无法显示json响应中的数据:

{
  "success": true,
  "data": {
    "id": 5,
    "user_id": 1,
    "category_id": 1,
    "title": "ghfjhgf",
    "body": "jhgfjhgf",
    "created": "2017-01-19T18:22:02+00:00",
    "modified": "2017-01-19T18:22:02+00:00",
    "file": null,
    "column_9": null,
    "category": {
      "id": 1,
      "name": "Running",
      "body": "Regroupe toutes les traces relative à la course à pied."
    },
    "user": {
      "id": 1,
      "email": "user@local.ch",
      "username": "user",
      "role": "user",
      "active": true,
      "created": "2017-01-15T16:21:44+00:00",
      "modified": "2017-01-15T16:21:44+00:00"
    }
  }
}
当我尝试使用
track.success
时,没有问题,它显示为true,但当我尝试使用以下任一项显示数据id时:

track.data.id
track['data'].id
track['data']['id']
我有一个未定义的属性。我需要帮助。提前谢谢

这是{{track | json}的输出

{
  "success": true,
  "data": {
    "id": 6,
    "user_id": 1,
    "category_id": 1,
    "title": "dsfasd",
    "body": "afdasf",
    "created": "2017-01-19T18:27:26+00:00",
    "modified": "2017-01-19T18:27:26+00:00",
    "file": null,
    "column_9": null,
    "category": {
      "id": 1,
      "name": "Running",
      "body": "Regroupe toutes les traces relative à la course à pied."
    },
    "user": {
      "id": 1,
      "email": "user@local.ch",
      "username": "user",
      "role": "user",
      "active": true,
      "created": "2017-01-15T16:21:44+00:00",
      "modified": "2017-01-15T16:21:44+00:00"
    }
  }
这是我的服务:

view(id):Observable<any> {
        return this.http.get('http://cake/api/tracks/' + id + '.json')
            .map(response => response.json());
    }

当您想要显示对象的内部属性时,应该使用安全导航(Elvis)操作符

track['data']?.id
track?.data?.id
或者使用json管道以json格式显示所有数据

track?.data | json
track | json

在ui上执行
{{track | json}}
并粘贴它返回的内容。您的
track
可能包含对旧对象的引用,但您的json已填充到新对象中。检查逻辑
track=myJson;myJson=newJson
,您的曲目将无法播放sync@VSO谢谢你的回答,我用输出编辑了我的帖子。@quepasso谢谢你的更新。您确定在尝试记录数据时数据可用吗?如果您执行{{track.data | json}},是否返回?如果是这样,那么我猜您的问题与异步有关。您的数据是否回到了可观察(或承诺)状态?如果是这样的话,您是在尝试从下一个回调函数获取它,还是在尝试从下一个回调函数获取它?还请发布您试图在javascript/typescript中使用data.id的代码片段。@VSO感谢您花时间回答我的问题。它与track['data']?.id和track?.data?.id配合使用很好。谢谢你@你能详细说明一下吗?我以为
是用于数据可能不可用的时候?很明显,如果你的答案是正确的,但你是怎么做到的?向上投票。当然我想解释一下,但现在我躺在床上,不能打字了。所以最好通过链接,如果你仍然不明白,请告诉我。很乐意在anser中添加解释,谢谢;)@PankajParkar我理解文档,只是重新阅读了它们-我不明白为什么它解决了这个问题-他发布的对象确实有一个id值,那么这有什么帮助?不管怎样,我稍后会问一个问题。我明白你的意思。你说的是。。。可能是OP所做的事情,最初他有
track={}
,所以当他做
{{track.success}}
时,当初始倒角检测运行时,它并没有失败,当对象gort填充时,它显示的是真值。
track?.data | json
track | json