【问题标题】:JSON object manipulationJSON对象操作
【发布时间】:2011-06-30 12:21:24
【问题描述】:

假设我们有以下描述人的 JSON 对象:

{
 "firstName": "John",
 "lastName": "Smith",
 "age": 25,
 "address":
 {
     "streetAddress": "21 2nd Street",
     "city": "New York",
     "state": "NY",
     "postalCode": "10021"
 },
 "phoneNumber":
 [
     {
       "type": "home",
       "number": "212 555-1234"
     },
     {
       "type": "fax",
       "number": "646 555-4567"
     }
 ]

}

有人可以建议在 Rails 3 中操作前一个对象的最优雅和最有效的方法吗?

我希望能够:

  1. 添加另一个元素,例如“firstname”、“lastname”等。
  2. 删除现有元素
  3. 更改元素而不删除它或添加新元素。 (例如,将名字更改为“Nick”)

提前致谢。

PS。我更喜欢在 Controller 中操作它!

【问题讨论】:

  • 您能提供更多背景信息吗?例如,你想在哪里操纵它?在控制器中、在 JavaScript 中、在厨房中制作拿铁咖啡?
  • 谢谢伙计。改变了问题!

标签: ruby-on-rails ruby json


【解决方案1】:

只需解析并更改它

hash = JSON.parse(json_data)
hash["firstname"] = "John"
hash.delete("lastname")
new_json = hash.to_json

附: JSON.parse 可能不起作用 - 这取决于您使用的 JSON 库。试试这个:

ActiveSupport::JSON.decode(json_data)

【讨论】:

  • 如果我想删除或编辑或添加一个字段到地址怎么办?例如删除“streetAddress”字段?你能举个例子吗?
  • 嵌套对象也被解析,因此只需执行 hash["address"]["streetAddress"]="42" 和 hash["address"].delete("city")
猜你喜欢
  • 2021-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-06
  • 1970-01-01
  • 2018-12-11
  • 2012-06-02
  • 2011-12-25
相关资源
最近更新 更多