xml - REST 风格的 API : How to model JSON representation?

标签 xml json api rest

我正在为预订应用程序设计一个 RESTful API。您可以索取住宿 list 。这就是我真的不知道如何设计 JSON 表示的地方。这是我的 XML 表示:

<?xml version="1.0" encoding="utf-8"?>
<accommodations>
    <accommodation>
        <name>...</name>
        <category>couch</category>
    </accommodation>
    <accommodation>
        <name>...</name>
        <category>room</category>
    </accommodation>
<accommodations>

我第一次尝试将其转换为 JSON 的结果是此输出 (1):

{
    "0": {
        "name": "...",
        "category": "couch"
    },
    "1": {
        "name": "...",
        "category": "room"
    }
}

但是当我查看其他 API 是如何做到这一点时,我发现了一些看起来更像这样的东西 (2):

[
    {
        "name": "...",
        "category": "couch" 
    },
    {
        "name": "...",
        "category": "room" 
    }
]

我知道版本 1 是一个对象,版本 2 是一个数组。

但是在这种情况下哪个更好呢?

最佳答案

您可以按如下方式对 JSON 进行建模:

{
  "accomodations" : [
    {
      "accomodation" : {
        "name": "...",
        "category": "couch",
        "uri": "http://example.org/accomodations/accomodation_1"
      }
    },
    {
      "accomodation": {
        "name": "...",
        "category": "room",
        "uri": "http://example.org/accomodations/accomodation_2"
      }
    }
  ]
}

并且您可以通过 GET http://example.org/accomodations 返回它 然后可以通过 POST http://example.org/accomodations 在正文中包含类似以下内容来创建新住宿:

{
  "accomodation": {
    "name": "...",
    "category": "room"
  }
}

关于xml - REST 风格的 API : How to model JSON representation?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2737809/

相关文章:

c# - 以编程方式在 MS Word 中打开 xml 文件

xml - 在 Powershell 中读取带有 BOM 的 XML 文件

JSON 输入文件中的 Java 对象

json - 如何在自定义反序列化器 Spring Boot 中读取路径变量或 URL 参数

forEach 循环中的 Javascript API 队列

php - API显示逻辑服务器端或客户端

javascript - speechSynthesis API 示例给出错误

xml - XSD 模式是否可以根据是否存在多个元素而具有不同的条件?

java - 如何在没有java双引号的情况下发送Jaxb XmlAttribute数据

php - HTTP GET 中大数据破坏 json 对象