将输入与ruby中json文件中的字段进行比较
我试图创建一个接受输入的函数。在这种情况下,这是一个跟踪代码。在JSON文件中查找跟踪代码,然后将跟踪代码作为输出返回。json文件如下所示:将输入与ruby中json文件中的字段进行比较,json,ruby,Json,Ruby,我试图创建一个接受输入的函数。在这种情况下,这是一个跟踪代码。在JSON文件中查找跟踪代码,然后将跟踪代码作为输出返回。json文件如下所示: [ { "tracking_number": "IN175417577", "status": "IN_TRANSIT", "address": "237 Pentonville Road, N1 9NG" }, { "tracking_number": "IN175417578", "status":
[
{
"tracking_number": "IN175417577",
"status": "IN_TRANSIT",
"address": "237 Pentonville Road, N1 9NG"
},
{
"tracking_number": "IN175417578",
"status": "NOT_DISPATCHED",
"address": "Holly House, Dale Road, Coalbrookdale, TF8 7DT"
},
{
"tracking_number": "IN175417579",
"status": "DELIVERED",
"address": "Number 10 Downing Street, London, SW1A 2AA"
}
]
我已开始使用此功能:
def compare_content(tracking_number)
File.open("pages/tracking_number.json", "r") do |file|
file.print()
end
不确定如何将输入与json文件进行比较。任何帮助都将不胜感激。您可以。
这将把提供的JSON解析成一个散列数组,然后可以将其与正在查找的数字进行比较
如果你是生成JSON文件的那个人,这个方法将被大量调用,请考虑直接将跟踪数字映射到它们的数据,以便此方法潜在地运行得更快。比如说,
{
"IN175417577": {
"status": "IN_TRANSIT",
"address": "237 Pentonville Road, N1 9NG"
},
"IN175417578": {
"status": "NOT_DISPATCHED",
"address": "Holly House, Dale Road, Coalbrookdale, TF8 7DT"
},
"IN175417579": {
"status": "DELIVERED",
"address": "Number 10 Downing Street, London, SW1A 2AA"
}
}
这将解析为一个散列,您可以更轻松地获取数据:
{
"IN175417577": {
"status": "IN_TRANSIT",
"address": "237 Pentonville Road, N1 9NG"
},
"IN175417578": {
"status": "NOT_DISPATCHED",
"address": "Holly House, Dale Road, Coalbrookdale, TF8 7DT"
},
"IN175417579": {
"status": "DELIVERED",
"address": "Number 10 Downing Street, London, SW1A 2AA"
}
}
require 'json'
def compare_content(tracking_number)
json_string = File.read("pages/tracking_number.json")
hash_from_json = JSON.parse(json_string)
if hash_from_json.key?(tracking_number)
tracking_hash = hash_from_json[tracking_number]
else
# Tracking number does not exist
end
end