Reconstruct JSON object (BPMN) in ordered format

Use case is to reconstruct json in custom format :

1.

-JSON objects in sequenceFlow are unordered  
-Input JSON example :SequenceFlow_1 ->SequenceFlow3 ->Flow_1 -> SequenceFlow2
-Full Example :
  "sequenceFlow": [
    {
      "_id": "SequenceFlow_1",
      "_sourceRef": "StartEvent",
      "_targetRef": "Activity_Select"
    },
    {
      "_id": "SequenceFlow_2",
      "_sourceRef": "Activity_Select",
      "_targetRef": "ExclusiveGateway_select"
    },
    {
      "_id": "Flow_1",
      "_sourceRef": "ExclusiveGateway_select",
      "_targetRef": "Activity_Update"
    },
    {
      "_id": "Flow_2",
      "_sourceRef": "Activity_Update",
      "_targetRef": "End_Update_Event"
    },
    {
      "_id": "Flow_3",
      "_sourceRef": "ExclusiveGateway_select",
      "_targetRef": "Activity_Delete"
    },
    {
      "_id": "Flow_4",
      "_sourceRef": "Activity_Delete",
      "_targetRef": "End_Delete_Event"
    }
  ]
  1. I am trying to

2.1. Reconstruct only sequence flow to get order based on “_sourceRef”, “_targetRef”

2.2. second
Once sequence is ordered ,Reconstruct new json object like below format

 {"1","startEvent" ,"_id": "StartEvent","_name": "hunger noticed"},
 {"2","task" ,"_id": "Activity_Select","_name": "choose recipe"},
 {"3","exclusiveGateway" ,"_id": "ExclusiveGateway_select","_name": "desired dish?",
 {
 {"3.1","task" ,"_id": "Activity_Update","_name": "update order"},
 {"3.2","endEvent" ,"_id": "End_Update_Event","_name": "end update order"}
 },
 {
 {"3.3","task" ,"_id": "Activity_Delete","_name": "delete order"},
 {"3.4","endEvent" ,"_id": "End_Delete_Event","_name": "end delete order"}
 }
 }