zoukankan      html  css  js  c++  java
  • 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类型













     
  • 相关阅读:
    分解质因数
    记忆化搜索
    BFS(广度优先搜索)
    DFS(深度优先搜索)
    A*算法
    最小生成树
    最近公共祖先(LCA)问题
    k短路算法
    次短路问题
    拓扑排序
  • 原文地址:https://www.cnblogs.com/wf0117/p/8854899.html
Copyright © 2011-2022 走看看