如何从json-server托管的api访问数组中的对象

时间:2018-02-24 20:25:45

标签: javascript json postman

我使用json-server在我的项目中托管API。

json-server给我的是{ "record": [ { "userID": "2", "userFirstName": "Arya", "userLastName": "Stark", "userMiddleName": "null", "roleName": "Admin", "roleID": "1" }, { "userID": "1", "userFirstName": "John", "userLastName": "Snow", "userMiddleName": "null", "roleName": "Moderator", "roleID": "1" } ] }

GET

我使用POSTMAN向服务器发出record请求。 如何进入userID数组并使用2作为http://localhost:3000/records/record?userID=2 访问该对象?

我试过这种方式,但它返回了一个空对象。如果我错了,请纠正我。

{
  "records": {
    "record": [
      {
        "userID": "2",
        "userFirstName": "Arya",
        "userLastName": "Stark",
        "userMiddleName": "null",
        "roleName": "Admin",
        "roleID": "1"
      },
      {
        "userID": "1",
        "userFirstName": "John",
        "userLastName": "Snow",
        "userMiddleName": "null",
        "roleName": "Moderator",
        "roleID": "1"
      }
    ]
  }
}

我的实际JSON目标文件:

omp

3 个答案:

答案 0 :(得分:2)

稍微改变一下你的JSON结构:

{
  "records": [
    {
      "userID": "2",
      "userFirstName": "Arya",
      "userLastName": "Stark",
      "userMiddleName": "null",
      "roleName": "Admin",
      "roleID": "1"
    },
    {
      "userID": "1",
      "userFirstName": "John",
      "userLastName": "Snow",
      "userMiddleName": "null",
      "roleName": "Moderator",
      "roleID": "1"
    }
  ]
}

然后http://localhost:3000/records?userID=2返回

[
  {
    "userID": "2",
    "userFirstName": "Arya",
    "userLastName": "Stark",
    "userMiddleName": "null",
    "roleName": "Admin",
    "roleID": "1"
  }
]

除了解决实际访问问题之外,我还无法找到基于对象属性的过滤器解决方案,这些对象属性是存储在db.json对象属性中的数组的一部分。

答案 1 :(得分:1)

很简单,但是你尝试过使用/records/record/2 json-server模块将大部分实现从用户手中夺走,这可能会起作用,因为它被设计成一个快速的REST API来让人们开始。

查看文档页面上的示例或查看此处运行的API http://jsonplaceholder.typicode.com/,因为它使用相同的代码。

答案 2 :(得分:0)

您必须根据请求参数更改服务器端的内容以过滤请求

或者只使用javascript:

data.records.record.filter((user)=>user.userID==2)[0]