I'm playing a little bit with the new StackOverflow API. Unfortunately, my JSON is a bit weak, so I need some help.
I'm trying to deserialize this JSON of a User:
  {"user":{
    "user_id": 1,
    "user_type": "moderator",
    "creation_date": 1217514151,
    "display_name": "Jeff Atwood",
    ...
    "accept_rate": 100
  }}
into an object which I've decorated with JsonProperty attributes:
[JsonObject(MemberSerialization.OptIn)]
public class User
{
    [JsonProperty("user_id", Required = Required.Always)]        
    public virtual long UserId { get; set; }
    [JsonProperty("display_name", Required = Required.Always)]
    public virtual string Name { get; set; }
    ...
}
I get the following exception:
Newtonsoft.Json.JsonSerializationException: Required property 'user_id' not found in JSON.
Is this because the JSON object is an array? If so, how can I deserialize it to the one User object?
Thanks in advance!
If you don't want to create a wrapper class you can also access the User this way:
String jsonString = "{\"user\":{\"user_id\": 1, \"user_type\": \"moderat...";
JToken root = JObject.Parse(jsonString);
JToken user = root["user"];
User deserializedUser = JsonConvert.DeserializeObject<User>(user.ToString());
See this page in the Json.NET doc for details.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With