1

I have JSON object in REST API response:

{
    Result:
    [
        {
            "id": 1,
            "id_endpoint": 1,
            "name": "Endpoint 1",
            "description": "Endpoint 1",
            "unit": "mmol",
            "minthreshold": 30,
            "maxthreshold": -15,
            "id_device": 4,
            "value": 7,
            "time": "2016-12-24T21:20:19.000Z",
            "address": "Endpoint 1",
            "id_user": 1
        }, {
            "id": 2,
            "id_endpoint": 1,
            "name": "Endpoint 1",
            "description": "Endpoint 1",
            "unit": "mmol",
            "minthreshold": 30,
            "maxthreshold": -15,
            "id_device": 4,
            "value": 6,
            "time": "2016-12-24T21:20:16.000Z",
            "address": "Endpoint 1",
            "id_user": 1
        }, {
            "id": 3,
            "id_endpoint": 1,
            "name": "Endpoint 1",
            "description": "Endpoint 1",
            "unit": "mmol",
            "minthreshold": 30,
            "maxthreshold": -15,
            "id_device": 4,
            "value": 8,
            "time": "2016-12-24T21:18:38.000Z",
            "address": "Endpoint 1",
            "id_user": 1
        }
    ],
    StatusCode: 200
}

And if Error, they will get:

{
    Result: null,
    StatusCode: 404
}

I'm using JSON.NET and I've class DeviceInfo.cs

public class DeviceInfo
{
    public int DeviceID {get;set;}
    public int EndpointID {get;set;}
    public string DeviceName {get;set;}
    public double MinThreshold {get;set;}
    public double MaxThreshold {get;set;}
    public double CurrentValue {get;set;}
    public DateTime ValueTime {get;set;}
    public string EndpointAddress {get;set;}
    public int IDUser {get;set;}
}

And my question is how to parse Result array in JSON object and stored it in DeviceInfo class?

3 Answers 3

5

You need attributes help Newtonsoft.Json mapping the source to your class.

public class DeviceInfo
{
    [JsonProperty("id")]
    public int DeviceID { get; set; }
    [JsonProperty("id_endpoint")]
    public int EndpointID { get; set; }
    [JsonProperty("name")]
    public string DeviceName { get; set; }
    [JsonProperty("minthreshold")]
    public double MinThreshold { get; set; }
    [JsonProperty("maxthreshold")]
    public double MaxThreshold { get; set; }
    [JsonProperty("value")]
    public double CurrentValue { get; set; }
    [JsonProperty("time")]
    public DateTime ValueTime { get; set; }
    [JsonProperty("address")]
    public string EndpointAddress { get; set; }
    [JsonProperty("id_user")]
    public int IDUser { get; set; }
}

And an outer class which your json was wrapped.

public class RootObject
{
    public List<DeviceInfo> Result { get; set; }
    public int StatusCode { get; set; }
}

Finally, you can use JsonConvert to Deserialize your json.

var result = JsonConvert.DeserializeObject<RootObject>(json);
Sign up to request clarification or add additional context in comments.

Comments

0

You can use JsonDeserialize to parse json

var array = JsonConvert.DeserializeObject<List<DeviceInfo>>(str);

Comments

0

Please refer to following code:

var response =  JsonConvert.DeserializeObject<Dictionary<string,object>>(JSONstring);

if(response != null && response["StatusCode"] == "200")
{
     List<DeviceInfo> lstResult = JsonConvert.DeserializeObject<List<DeviceInfo>(response["Result"]);
}

I hope this would help.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.