从JSON到地图的正确转换是什么?

时间:2015-05-29 06:11:25

标签: json grails

我正在使用httpbuilder创建对API的REST请求。

唯一可接受的JSON格式是

{
"attributes" : [
  {
     "name" : "attr-name",
     "values" : [
        "attr-value"
     ]
  }
 ]
}

这在Postman-ReSTClient

中被接受并成功

t将它转换为map就像这样

 [attributes:[name:attName,values:[value:value1]]]

 [attributes:[[name:attName,values:[value:value1]]]]

我收到的错误表明请求正文不正确。

1 个答案:

答案 0 :(得分:0)

如果您询问Postman API,我无法帮助您。如果您询问JSON代码是否与您的Ruby代码匹配,那么不,它们不匹配。

花括号{}标记哈希(键:值对),大括号[]标记数组(没有键的值列表)。

你有这个:

require 'json'
m = [attributes:[name:"attName",values:[value:"value1"]]]
print m.to_json()

> [{"attributes":[{"name":"attName","values":[{"value":"value1"}]}]}]

但是,你想要这个:

require 'json'
m = {attributes:[{name:"attName",values:["1"]}]}
print m.to_json()

> {"attributes":[{"name":"attName","values":["1"]}]}
经验法则,它有钥匙吗?使用 {}。它是值列表吗?使用[]