Stu Ayton
Stu Ayton

Reputation: 489

sorting array after json retrieval

I have the following code, which works fine, that parses JSON.

EVENT and SQUAD are JSON arrays.

What code would I need to be able to sort the arrays, for example sorting EVENT on TIME, or SQUAD on RANK?

void client_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
        {

            var serializer = new DataContractJsonSerializer(typeof(gameDetails));
            gameDetails jsResult = (gameDetails)serializer.ReadObject(e.Result);

        ...
        }
        [DataContract]
        public class gameDetails
        {
            [DataMember]
            public string HomeTeamScore { get; set; }
            [DataMember]
            public string AwayTeamScore { get; set; }
            [DataMember]
            public string FixtureDate { get; set; }
            [DataMember]
            public string HomeTeamName { get; set; }
            [DataMember]
            public string AwayTeamName { get; set; }
            [DataMember(Name = "EVENT")]
            public EVENT[] EVENTS;
            [DataMember(Name = "SQUADS")]
            public SQUAD[] SQUADS;

        }
        [DataContract]
        public class EVENT
        {
            [DataMember]
            public string TEAMFLAG { get; set; }
            [DataMember]
            public string TIME { get; set; }
            [DataMember]
            public string PLAYER { get; set; }
            [DataMember]
            public string TYPE { get; set; }
        }

        [DataContract]
        public class SQUAD
        {
            [DataMember]
            public string PLSURN { get; set; }
            [DataMember]
            public string PLID { get; set; }
            [DataMember]
            public string PLAYER { get; set; }
            [DataMember]
            public string TEAM { get; set; }
            [DataMember]
            public string PLFORN { get; set; }
            [DataMember]
            public string SQUADNO { get; set; }
            [DataMember]
            public string RANK { get; set; }
        }

Upvotes: 0

Views: 977

Answers (1)

nrodic
nrodic

Reputation: 3021

Maybe this for sorting EVENTS:

jsResult.EVENTS = jsResult.EVENTS.OrderBy(e=>e.TIME).ToArray();

Note that TIME is string and you might want to convert it before sorting.

Upvotes: 1

Related Questions