I'm trying to obtain a hash from the following:
response:
{"result": [
{
"LEID": "123",
"result": [
{
"CCID": "456",
"result": [
{
"Amount": 10000,
"NNID": "789"
}
]
},
{
"CCID": "ABC",
"result": [
{
"Amount": 5000,
"NNID": "DEF"
}
]
}
]
}
]
}
What i'm trying to do is get the following out:
{"LEID":123,"CCID":456,"NNID":789}
{"LEID":123,"CCID":ABC,"NNID":DEF}
So get a trio of LEID, CCID and NNID
So far what I have is:
LEID_collection = response['result']
LEID = LEID_collection.map {|h| h['LEID']}
LEID = LEID.reduce
CCID_collection = LEID_collection.reduce
CCIDs = CCID_collection['result'].map {|h|h['CCID']}
CCID1 = CCIDs[0]
CCID2 = CCIDs[1]
CCIDs = CCID_collection['result']
test = CCIDs.first.keys.zip(CCIDs.map(&:values).transpose).to_h
test2 = test['result']
test3 = test2.flatten
test4 = test3.map {|h| h['NNID']}
NNID1 = test4[0]
NNID2 = test4[1]
hash1 = Hash["LEID", LEID, "CCID", CCID1, "NNID", NNID1]
puts "hash 1 :" + hash1.to_s
hash2 = Hash["LEID", LEID, "CCID", CCID2, "NNID", NNID2]
puts "hash 2 :" + hash2.to_s
This gets what I want but is really not dynamic... are there any better ways?
Sorry for how convoluted this is, i'm just not sure how to explain it any other way. Happy to answer any questions.