小编典典

序列化JSON以查询字符串的标准化方法?

json

我正在尝试建立一个宁静的环境,API并且正在努力将JSON数据序列化到HTTP query string

在请求中需要传递许多强制性和可选参数,例如(以下表示为JSON对象):

{
   "-columns" : [
      "name",
      "column"
   ],
   "-where" : {
      "-or" : {
         "customer_id" : 1,
         "services" : "schedule"
      }
   },
   "-limit" : 5,
   "return" : "table"
}

我需要支持各种不同的客户端,因此我正在寻找一种标准化的方法来将此json对象转换为查询字符串。有一个,看起来怎么样?

另一种选择是允许用户仅在消息正文中传递json对象,但我读到我应该避免使用它。

有什么想法吗?

编辑以澄清:

在上面列出一些不同的语言如何编码给定的json对象:

  • jQuery使用$.param:-columns [] = name&-columns [] = column&-where [-or] [customer_id] = 1&-where [-or] [services] = schedule&-limit = 5&return = column
  • PHP使用http_build_query:-columns [0] = name&-columns [1] = column&-where [-or] [customer_id] = 1&-where [-or] [services] = schedule&-limit = 5&return = column
  • Perl使用URI::query_form:-columns = name&-columns = column&-where = HASH(0x59d6eb8)&-limit = 5&return = column
  • Perl使用complex_to_query:-columns:0 = name&-columns:1 = column&-limit = 5&-where.-or.customer_id = 1&-where.-or.services = schedule&return = column

jQuery和PHP非常相似。使用complex_to_query的Perl也与它们非常相似。但是没有一个看起来完全一样。


阅读 59

收藏
2020-07-27

共1个答案: 请登录查看