今天遇到了一个要解析JSON的需求。在http://stackoverflow.com/questions/1826727/how-do-i-parse-json-with-ruby-on-rails找到了答案。

irb(main):021:0> arr=JSON.parse str_vps
=> [{"id"=>"260e053b-d728-4785-888d-eb4f1ca0a194", "name"=>"全局管综视点"}, {"id"=>"7a1baa69-baab-434f-bcf0-aa885ab07ed4", "name"=>"管综细部"}, {"id"=>"441d05a2-bcc6-4e19-8eb7-f239934f395c", "name"=>"空调机组"}, {"id"=>"1b35039c-906d-409f-98c7-5affd2fd2ef3", "name"=>"水泵"}, {"id"=>"c4f99f19-dc28-4b52-b00c-007e59ea35b7", "name"=>"透视1"}, {"id"=>"ed04969b-dabb-4575-bc10-f09104ab8f67", "name"=>" 透视2"}]
irb(main):022:0> arr.length
=> 6
irb(main):023:0> arr[0].name
NoMethodError: undefined method `name' for #<Hash:0x00000003c58db8>
from (irb):23
from /usr/lib/ruby/vendor_ruby/rails/commands/console.rb:47:in `start'
from /usr/lib/ruby/vendor_ruby/rails/commands/console.rb:8:in `start'
from /usr/lib/ruby/vendor_ruby/rails/commands.rb:41:in `<top (required)>'
from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from script/rails:6:in `<main>'
irb(main):024:0> arr[0][name]
NameError: undefined local variable or method `name' for main:Object
from (irb):24
from /usr/lib/ruby/vendor_ruby/rails/commands/console.rb:47:in `start'
from /usr/lib/ruby/vendor_ruby/rails/commands/console.rb:8:in `start'
from /usr/lib/ruby/vendor_ruby/rails/commands.rb:41:in `<top (required)>'
from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from script/rails:6:in `<main>'
irb(main):025:0> arr[0]
=> {"id"=>"260e053b-d728-4785-888d-eb4f1ca0a194", "name"=>"全局管综视点"}
irb(main):026:0> vp1=arr[0]
=> {"id"=>"260e053b-d728-4785-888d-eb4f1ca0a194", "name"=>"全局管综视点"}
irb(main):027:0> vp1.id
NoMethodError: undefined method `id' for #<Hash:0x00000003c58db8>
from (irb):27
from /usr/lib/ruby/vendor_ruby/rails/commands/console.rb:47:in `start'
from /usr/lib/ruby/vendor_ruby/rails/commands/console.rb:8:in `start'
from /usr/lib/ruby/vendor_ruby/rails/commands.rb:41:in `<top (required)>'
from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from script/rails:6:in `<main>'
irb(main):028:0> vp1["id"]
=> "260e053b-d728-4785-888d-eb4f1ca0a194"
irb(main):029:0> vp1[:id]
=> nil

只要一句命令就可以将JSON解析为ruby对象(array、hash)。

把博客用起来,记录一下自己填过的坑。

JSON的操作的更多相关文章

  1. Json——js和C#对Json的操作

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式.博主记得几年前在华为外包项目中有一个和Android应用交互的需求,Andr ...

  2. 支持Json进行操作的Javascript类库TAFFY DB

    前段时间工作中用到Json数据,希望将一些简单的增删改查放到客户端来做,这样也能减少服务器端的压力.分别查找了几个可以对Json进行操作的javascript 类库,最终选定了TAFFY DB.原因如 ...

  3. C#中用JavaScriptSerializer和Json.Net操作json格式的文件

    1.json文件 2.写出对应的类 //折扣 public class Discount { public string Qty { get; set; } public string percent ...

  4. javascript json对象操作(基本增删改查)

    /** * Json对象操作,增删改查 * * @author lellansin * @blog www.lellansin.com * @version 0.1 * * 解决一些常见的问题 * g ...

  5. JS和C#对Json的操作

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式.博主记得几年前在华为外包项目中有一个和Android应用交互的需求,Andr ...

  6. C# Newtonsoft.Json JObject 操作

    C# Newtonsoft.Json JObject 操作举例 JArray j = new JArray(); JObject obj = new JObject( ") ); JObje ...

  7. python 发送json数据操作实例分析 - python

    文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 本文实例讲述了python 发送json数据操作.分享给大家供大家参考,具体如下: # !/usr/bin/env py ...

  8. npm、cnpm与package-lock.json的操作

    来源:npm.cnpm与package-lock.json的操作_IT码农-爱吃辣条的博客-CSDN博客_cnpm lock package.json文件只能锁定大版本,也就是版本号的第一位,并不能锁 ...

  9. JSON数组操作

    在jquery中处理JSON数组的情况中遍历用到的比较多,但是用添加移除这些好像不是太多. 今天试过json[i].remove(),json.remove(i)之后都不行,看网页的DOM对象中好像J ...

  10. 开发日志系列:一个表单页面的呈现与提交(一)——JSON的操作

    JSON操作 引子 最近在做一个表单页面,大概是这个样子的 这里打算用一个JSON存储所有的信息,我们可以理解为,所有东西都存在一个字符串里面.方便,快捷,易读,数据库操作也方便了.甚至,可以将很多不 ...

随机推荐

  1. api-ms-win-crt-runtimel1-1-0.dll缺失的解决方案

    api-ms-win-crt-runtime就是MFC的运行时环境的库, 在windows上编译也是用微软的visual studio C++编译的软件, 底层也会用到微软提供的C++库和runtim ...

  2. powershell: 生成随机字符串

    ASCII范围内的 获取6个随机字符(字母和数字) 48到57是数字0-9,powershell的范围操作符是..,和Perl 5的一样, 所以 48..57就是指(48 49 50 51 52 53 ...

  3. linux配置java环境变量(详细)【转】

    转自:http://www.cnblogs.com/samcn/archive/2011/03/16/1986248.html 一. 解压安装jdk 在shell终端下进入jdk-6u14-linux ...

  4. javascript 金额格式化

    金额格式化 example: <!DOCTYPE html> <html> <head> <script src="http://code.jque ...

  5. Getting Started with the C# Driver

    1.下载 如果下载的.zip文件,只需要解压即可. 如果安装的.msi文件,它会将C#驱动DLL放在C:\Program Files (x86)\MongoDB\CSharp Driver xxx的位 ...

  6. 如何用javascript 的eval动态执行一个需要传对象参数的函数

    代码如下: var method = 'setRiskItemAmount_'+id[1]+'(id[0],id[2],this.value);'; console.log(method); eval ...

  7. PHP中header函数的用法及其注意重点是什么呢

    1.使用header函数进行跳转页面: header('Location:'.$url); 其中$url就是将要跳转的url了. 这种用法的注意事项有以下几点: •Location和":&q ...

  8. PHP正则表达式的使用

    1. 正则表达式的主要作用是:分割.匹配.查找.替换2. 正则表达式中包括的元素:原子(普通字符:a-z A-Z 0-9 .原子表.转义字符),元字符(有特殊功能的字符),模式修正符(系统内置部分字符 ...

  9. shell脚本中变量$$、$0等的含义

    $0 这个程式的执行名字$n 这个程式的第n个参数值,n=1..9$* 这个程式的所有参数,此选项参数可超过9个.$# 这个程式的参数个数$$ 这个程式的PID(脚本运行的当前进程ID号)$! 执行上 ...

  10. java 面试每日一题2

    题目:输入一行字符,分别统计出其中英文字母.空格.数字和其它字符的个数. 注:如果想单独输出中文的个数和中文符号的个数,只需把isChinese()中的if语句修改 知识补充: java不像C中拥有s ...