Created
November 9, 2017 04:56
-
-
Save houmanka/b758cd3fee76c3e50f3f3203d940b6d5 to your computer and use it in GitHub Desktop.
JSON Convertor
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
I need to convert the first JSON to the second JSON and feed it to an API Endpoint. | |
I wanted to ask you guys to see if there is any module in Elixir or Phoenix beside poison can help me to achieve this? | |
Or should I call the Parents from DB, and then children until I get to the end of line, and create the JSON gradually? | |
I am using arbor for traversing the tree. | |
{ | |
"data": [ | |
{ | |
"parent_id": null, | |
"reference": 9569, | |
"name": "Master", | |
}, | |
{ | |
"parent_id": 9570, | |
"reference": 9575, | |
"name": "gear1", | |
}, | |
{ | |
"parent_id": 9570, | |
"reference": 9576, | |
"name": "gear2", | |
}, | |
{ | |
"parent_id": 9570, | |
"reference": 9577, | |
"name": "gear3", | |
}, | |
{ | |
"parent_id": 9577, | |
"reference": 9579, | |
"name": "shaft2", | |
}, | |
{ | |
"parent_id": 9569, | |
"reference": 9570, | |
"name": "engine1", | |
}, | |
{ | |
"parent_id": 9577, | |
"reference": 9578, | |
"name": "shaft1", | |
}, | |
{ | |
"parent_id": 9569, | |
"reference": 9571, | |
"name": "engine2", | |
}, | |
{ | |
"parent_id": 9569, | |
"reference": 9572, | |
"name": "engine3", | |
}, | |
{ | |
"parent_id": 9569, | |
"reference": 9573, | |
"name": "engine4", | |
}, | |
{ | |
"parent_id": 9569, | |
"reference": 9574, | |
"name": "engine5", | |
} | |
] | |
} | |
Convert to | |
{ | |
"data": [{ | |
"name": "Master", | |
"reference": "9569", | |
"children": [{ | |
"name": "engine1", | |
"reference": "9570", | |
"children": [{ | |
"name": "gear1", | |
"reference": "9575", | |
"children": [{ | |
"name": "Asset 12", | |
"reference": "12" | |
}] | |
}, | |
{ | |
"name": "gear2", | |
"reference": "9576", | |
"children": [{ | |
"name": "Asset 13", | |
"reference": "13" | |
}] | |
}, | |
{ | |
"name": "gear3", | |
"reference": "9577", | |
"children": [{ | |
"name": "shaft2", | |
"reference": "9579" | |
}, | |
{ | |
"name": "shaft1", | |
"reference": "9578" | |
} | |
] | |
} | |
] | |
}, { | |
"name": "engine2", | |
"reference": "9571" | |
}, | |
{ | |
"name": "engine3", | |
"reference": "9572" | |
}, | |
{ | |
"name": "engine4", | |
"reference": "9573" | |
}, | |
{ | |
"name": "engine4", | |
"reference": "9574" | |
} | |
] | |
}] | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment