xml - 是否有将结构对象编码为 HTTP GET 请求参数的标准语法?

标签 xml json http data-structures

假设我们需要将一些结构化对象传递给 Web 应用程序 - 例如,区域设置、布局设置和一些查询的定义。这可以使用类似于以下片段的 JSON 或 XML 轻松完成:

<Locale>en</Locale>  
<Layout>  
  <Block id="header">hide</Block>  
  <Block id="footer">hide</Block>  
  <Block id="navigation">minimize</Block>  
</Layout>  
<Query>  
  <What>water</What>  
  <When>  
    <Start>2010-01-01</Start>  
  </When>  
</Query>

但是,使用 HTTP 传递此类结构意味着(粗略地说)HTTP POST。

现在假设我们仅限于 HTTP GET。在 HTTP GET 请求参数中编码结构化数据是否有某种标准解决方案?

我可以很容易地想象出这样的事情:

Locale=en&
Layout.Block.header=hide&
Layout.Block.footer=hide&
Layout.Block.navigation=minimize&
Query.What=water&
Query.When.Start=2010-01-01

但我正在寻找的是“标准”语法,如果有的话。

附言。我肯定知道 URL 长度的问题。请假设在这种情况下这不是问题。

页数。我也很乐意提供您认为值得一看的键值对 URL API(例如 Paypal NVP)的链接。

pps。我们当然预见到回调 URL,但我们也需要 HTTP GET 键值对。问题集中在后者。

最佳答案

嗯,在 URI 中编码数据的标准方法是 application/x-www-form-urlencoded大多数 应用程序处理分层数据的方式是在关键部分使用方括号。例如:

Locale=en&
Layout[Block][header]=hide&
Layout[Block][footer]=hide&
Layout[Block][navigation]=minimize&
Query[What]=water&
Query[When][Start]=2010-01-01

这在某种程度上是特定于应用程序的,但它非常接近成为事实上的标准

关于xml - 是否有将结构对象编码为 HTTP GET 请求参数的标准语法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2694223/

相关文章:

java - java中从xml中的标签获取元素

xml - clojure.xml/emit 发生了什么?

sql-server - 在 XPath 到 SQL Server XML 列中从 sum 中消除 xml 节点

jquery - 如何使用Jquery检查Json对象是否存在?

javascript - 如何检索 jquery $.ajax 对象的 responseJSON 属性

android - 替换已弃用的 DefaultHttpClient

http - 使用 IE9 从 HTTP 获取的页面链接到本地​​文件

c++ - QXmlStreamReader读取空文本,文档肯定不为空

silverlight - 在 Silverlight 中使用 HttpRequest 对象时可以设置 http header 吗?

json - Google 语音 API 的 INVALID_ARGUMENT 错误