Welcome toVigges Developer Community-Open, Learning,Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.0k views
in Technique[技术] by (71.8m points)

asp.net - Parse JSON array in C#

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.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

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


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to Vigges Developer Community for programmer and developer-Open, Learning and Share
...