0

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; }
        }

1 Answer 1

1

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.

Sign up to request clarification or add additional context in comments.

1 Comment

perfect! I had tried many different things and couldn't get it working, simple when you know how! I've changed TIME and a couple of other variables to int to aid with the sorting.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.