Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

There is an API which I don't control, but whose output I need to consume with C#, preferably using JSON.Net.

Here's an example response:

[
    {
        "media_id": 36867, 
        "explicit": 0
    }
]

I had planned to have a class like so:

class Media {
    public int media_id;
    public int explicit;
}

And to deserialize:

var l = JsonConvert.DeserializeObject<List<Media>>(s);

Unfortunately, "explicit" is a C# keyword, so this can't compile.

My next guess is to modify the class:

class Media {
    public int media_id;
    public int explicit_;
}

... and somehow map the response attributes to the C# attributes.

How should I do that, or am I totally going at this the wrong way?

Failing that, I'd be OK to just plain ignore the "explicit" in the response, if there's a way to do that?

See Question&Answers more detail:os

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

1 Answer

Haven't used JSON.Net, but judging by the docs here, I figure you just need to do what you'd do with XmlSerialization: Add an attribute to tell how the JSON property should be called:

class Media {
    [JsonProperty("media_id")]
    public int MediaId;
    [JsonProperty("explicit")]
    public int Explicit;
}

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...