ruby json解析&生成

 

JSON 通常用于与服务端交换数据。

在接收服务器数据时一般是字符串。

我们可以使用 JSON.parse() 方法将数据转换为 ruby 对象。

一. json字符串解析

require 'json'

my_hash = JSON.parse('{"hello": "goodbye"}')
puts my_hash['hello'] #=> 'goodbye'

 

如果json字符串比较复杂,包含单引号,双引号;这里有两个办法:

  1. 用双引号包含json字符串,并对json字符串中的每个双引号进行转义(这个操作,有些ide可以支持,rubymine中没发现)比较繁琐
  2. 将json字符串写入到json文件中,通过读取json文件的方式解析
    require 'json'
    require 'pp'
     
    json = File.read('input.json')
    obj = JSON.parse(json)
     
    pp obj

      

二.ruby json对象转为json字符串

  1. generate
    require 'json'
    
    my_hash = {:hello => "goodbye"}
    puts JSON.generate(my_hash) #=> "{\"hello\":\"goodbye\"}"

     

  2. to_json

    require 'json'
    {:hello => "goodbye"}.to_json #=> "{\"hello\":\"goodbye\"}"
    1.to_json #=> "1"

    JSON.generate只允许将对象或数组转换成JSON字符串,to_json可以接收许多类型

三.[](object, opts = {})

如果对象是字符串类型,解析字符串并将解析后的结果作为Ruby数据结构返回。否则就会从Ruby数据结构对象生成一个JSON文本并返回它。

相当于会先判断对象类型,如果是ruby json类型则转化为json字符串;如果是json字符串则转化为ruby josn类型













 

 

转载于:https://www.cnblogs.com/wf0117/p/8854899.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值