Ruby JSON 学习笔记
简介
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。与XML相比,它更加易于阅读和编写,并且占用较少的数据传输带宽。Ruby提供了内置的JSON解析库,使读取和处理JSON数据变得非常容易。
解析JSON
要解析JSON数据,可以使用Ruby的JSON
库中的parse
方法。这个方法会将JSON字符串转换为Ruby对象。
rubyCopy Coderequire 'json'
json_string = '{"name": "John", "age": 30, "city": "New York"}'
json_object = JSON.parse(json_string)
puts json_object['name']
输出:
Copy CodeJohn
构建JSON
要创建JSON数据,可以使用Ruby的JSON
库中的generate
方法。这个方法会将Ruby对象转换为JSON字符串。
rubyCopy Coderequire 'json'
hash_object = { name: 'John', age: 30, city: 'New York' }
json_string = JSON.generate(hash_object)
puts json_string
输出:
Copy Code{"name":"John","age":30,"city":"New York"}
实例
在Rails框架中,我们可以将模型对象转换为JSON对象以便于API返回或者AJAX请求。例如,我们有一个User
模型,我们可以调用to_json
方法将它转换为JSON对象。
rubyCopy Codeclass User < ApplicationRecord
end
rubyCopy Codeuser = User.first
json_object = user.to_json
puts json_object
输出:
Copy Code{"id":1,"name":"John","age":30,"created_at":"2023-05-25T10:15:00.000Z","updated_at":"2023-06-01T14:20:00.000Z"}
在Rails中,我们也可以使用render
方法将JSON对象直接渲染到API响应中。
rubyCopy Codeclass UsersController < ApplicationController
def show
user = User.find(params[:id])
render json: user
end
end
这个方法会自动将User
对象转换为JSON对象,并设置响应头为application/json
。