Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Parse JSON array in C#

Tags:

json

c#

asp.net

I'm trying to parse the following json array

[
    {
        "email": "[email protected]",
        "timestamp": 1337197600,
        "smtp-id": "<[email protected]>",
        "event": "processed"
    },
    {
        "email": "[email protected]",
        "timestamp": 1337966815,
        "smtp-id": "<[email protected]>",
        "category": "newuser",
        "event": "clicked"
    },
    {
        "email": "[email protected]",
        "timestamp": 1337969592,
        "smtp-id": "<[email protected]>",
        "event": "processed"
    }
]

I've not really used json format before, so it's all a little new. I found I can parse a single element easily, i.e.

{
        "email": "[email protected]",
        "timestamp": 1337197600,
        "smtp-id": "<[email protected]>",
        "event": "processed"
}

dynamic stuff = JsonConvert.DeserializeObject(json);
Response.Write(string.Format("{0} = {1}<br />", "timestamp", stuff.timestamp)); 
//etc

But i'm struggling with how to get the individual elements into an array to loop through.

I though about splitting the sting on },{ but didn't have much luck with that. I imagine there's an easier way i'm missing.

Thank you.

like image 969
Ben Durkin Avatar asked Dec 19 '22 17:12

Ben Durkin


1 Answers

Just deserialize the JSON as is and loop it...

dynamic stuff = JsonConvert.DeserializeObject(json);

foreach (var s in stuff) 
{
     Console.WriteLine(s.timestamp);
}

Fiddle: http://dotnetfiddle.net/0SthDp

like image 153
Anthony Chu Avatar answered Dec 30 '22 16:12

Anthony Chu