首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正确反序列化json数组以在ng2-smart-table中显示结果

正确反序列化json数组以在ng2-smart-table中显示结果
EN

Stack Overflow用户
提问于 2018-08-28 00:45:58
回答 1查看 236关注 0票数 0

我正在使用ng2-smart-table并尝试显示数据

当我创建如下对象的本地数组时:

代码语言:javascript
复制
var data = [
  {
    id: 1,
    name: 'Leanne Graham',
    username: 'Bret',
    email: 'Sincere@april.biz',
  },
  {
    id: 2,
    name: 'Ervin Howell',
    username: 'Antonette',
    email: 'Shanna@melissa.tv',
  },
  {
    id: 3,
    name: 'Clementine Bauch',
    username: 'Samantha',
    email: 'Nathan@yesenia.net',
  }
]

它可以工作,但当我从API收到json结果时,它就不能工作了:

代码语言:javascript
复制
data = [
  0:{
    id: 1,
    name: 'Leanne Graham',
    username: 'Bret',
    email: 'Sincere@april.biz',
  },
  1:{
    id: 2,
    name: 'Ervin Howell',
    username: 'Antonette',
    email: 'Shanna@melissa.tv',
  },
  2:{
    id: 3,
    name: 'Clementine Bauch',
    username: 'Samantha',
    email: 'Nathan@yesenia.net',
  }
]

有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2018-08-28 01:07:21

你在问题中分享的两种结构完全不同。理想情况下,如果您的API具有相同的响应结构,则效果会更好。我认为第一个是你的API响应的结构。我真的不知道你是怎么得到下面的结构的。它无论如何都不是一个有效的数组。

如果您仍然收到此响应,您可以创建一个映射函数来使其工作。下面是操作步骤:

假设这是您从API获得的响应类型:

代码语言:javascript
复制
data = {
  '0': {
    id: 1,
    name: 'Leanne Graham',
    username: 'Bret',
    email: 'Sincere@april.biz',
  },
  '1': {
    id: 2,
    name: 'Ervin Howell',
    username: 'Antonette',
    email: 'Shanna@melissa.tv',
  },
  '2': {
    id: 3,
    name: 'Clementine Bauch',
    username: 'Samantha',
    email: 'Nathan@yesenia.net',
  }
}

您可以将其转换为所需格式的数据,如下所示:

代码语言:javascript
复制
let myData = [];
for(let index in data) {
  myData.push(data[index]);
}

更新此数据看起来很眼熟。你在使用JSONPlaceholder吗?如果是这样的话,你可以看看我创建的这个Sample StackBlitz Project。我还使用JSONPlaceholder应用程序接口来获取用户列表,并将其显示在角度材料表中。此示例将帮助您了解如何从API获取响应。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52043692

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档