delete_user方法的JSON文件解析错误

时间:2015-11-07 16:17:48

标签: ruby json

我有一个保存到JSON文件的程序,这是我第一次尝试使用JSON文件,所以如果这是一个非常简单的问题我会道歉。

我的程序内部有一个解析JSON文件的方法,并删除用户提供的信息,称为delete_user。在从delete_user方法解析文件时,我收到错误:

C:/Ruby22/lib/ruby/2.2.0/json/common.rb:155:in `parse': 776: unexpected token at
 'users.json' (JSON::ParserError)
        from C:/Ruby22/lib/ruby/2.2.0/json/common.rb:155:in `parse'
        from usertool.rb:35:in `delete_user'
        from usertool.rb:15:in `menu'
        from usertool.rb:66:in `<main>'

我知道错误告诉我我的JSON文件没有解析,但我不明白是为什么..

错误来自的delete_user方法:

def delete_user
    hash = JSON.parse('users.json')
    delete_data = prompt("Enter username:")
    delete_data[:username] = "#{username}"
    delete_data.delete[:email_address, :member_status]
    new_json = delete_data.to_json
    delete_user if restart
end

我是如何解析文件的问题,我做错了吗?还是有另一个问题在我脑海中浮现?

以下是JSON文件的示例:

{"username":"TEST1","email_address":"TEST1","member_status":"TEST1"}

1 个答案:

答案 0 :(得分:1)

TR; DL:

这将有效:

JSON.parse(File.read('file-name-to-be-read.json'))

为什么?

json.parse [string]解析普通JSON,但不加载文件。相反,传递一个文件对象,它将读取它内部的JSON。

JSON是一个字符串

JSON是一种将对象编码为字符串的方式 - 它基于如何定义javascript对象( J ava S cript- O ption-的ñ浮选)。它是一个字符串 - 而不是文件保护程序,这意味着您可以在更多应用程序(如API)中使用它,同时将数据保存到文件中。