Arch Cant
Arch Cant

Reputation: 1

How can I sort an object by key value?

I have this data and I want to sort all the type_description value ascending. How can I do this?

data = [
  {
    'name': 'asd',
    'contact': [{
        "country_code": "1",
        "area_code": null,
        "contact_no": "4616984351",
        "email": null,
        "type_description": "Mobile - Primary"
      },
      {
        "country_code": null,
        "area_code": "416",
        "contact_no": "6984351",
        "email": null,
        "type_description": "Landline - Business"
      },
      {
        "country_code": null,
        "area_code": null,
        "contact_no": null,
        "email": "[email protected]",
        "type_description": "Email - Primary"
      }
    ]
  },
  {
    'name': 'dsa',
    'contact': [{
        "country_code": "1",
        "area_code": null,
        "contact_no": "4616984351",
        "email": null,
        "type_description": "Mobile - Primary"
      },
      {
        "country_code": null,
        "area_code": "416",
        "contact_no": "6984351",
        "email": null,
        "type_description": "Landline - Business"
      },
      {
        "country_code": null,
        "area_code": null,
        "contact_no": null,
        "email": "[email protected]",
        "type_description": "Email - Primary"
      }
    ]
  }
];

I'm expecting the data to be look like this

data = [
  {
    'name': 'asd',
    'contact': [{
        "country_code": null,
        "area_code": null,
        "contact_no": null,
        "email": "[email protected]",
        "type_description": "Email - Primary"
      },
      {
        "country_code": null,
        "area_code": "416",
        "contact_no": "6984351",
        "email": null,
        "type_description": "Landline - Business"
      },
      {
        "country_code": "1",
        "area_code": null,
        "contact_no": "4616984351",
        "email": null,
        "type_description": "Mobile - Primary"
      },
    ]
  },
  {
    'name': 'dsa',
    'contact': [{
        "country_code": null,
        "area_code": null,
        "contact_no": null,
        "email": "[email protected]",
        "type_description": "Email - Primary"
      },
      {
        "country_code": null,
        "area_code": "416",
        "contact_no": "6984351",
        "email": null,
        "type_description": "Landline - Business"
      },
      {
        "country_code": "1",
        "area_code": null,
        "contact_no": "4616984351",
        "email": null,
        "type_description": "Mobile - Primary"
      },
    ]
  }
];

Upvotes: 0

Views: 36

Answers (1)

Jarvis098
Jarvis098

Reputation: 1780

do insert the jsondata in the variable name datastore

List<Map<String,dynamic>> dataStrore = [put all json data here];

Now do the sort

dataStore.forEach((user){
List<Map<String, dynamic>> contact = user['contact'];
contact.sort((a,b)) => a['type_discription'].compareTo(b['typediscription'])));
})

Now print and see the sorted data

print(dataStore)

Upvotes: 1

Related Questions