Ruby JSON 学习笔记

简介

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。与XML相比,它更加易于阅读和编写,并且占用较少的数据传输带宽。Ruby提供了内置的JSON解析库,使读取和处理JSON数据变得非常容易。

解析JSON

要解析JSON数据,可以使用Ruby的JSON库中的parse方法。这个方法会将JSON字符串转换为Ruby对象。

rubyCopy Code
require 'json' json_string = '{"name": "John", "age": 30, "city": "New York"}' json_object = JSON.parse(json_string) puts json_object['name']

输出:

Copy Code
John

构建JSON

要创建JSON数据,可以使用Ruby的JSON库中的generate方法。这个方法会将Ruby对象转换为JSON字符串。

rubyCopy Code
require '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 Code
class User < ApplicationRecord end
rubyCopy Code
user = 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 Code
class UsersController < ApplicationController def show user = User.find(params[:id]) render json: user end end

这个方法会自动将User对象转换为JSON对象,并设置响应头为application/json