Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

JSON.Net, JsonConvert.DeserializeObject - problems with deserialization

When I am trying to deserialize my JSON with JSON.Net it gives me invalid values for JSON arrays.

I have simple JSON:

[
{
    "PhaseName": "Start",
    "Advices": ["Lorem ipsum dolor",
    "Lorem ipsum dolor",
    "Lorem ipsum dolor"]
},
{
    "PhaseName": "In Progress",
    "Advices": ["Lorem ipsum dolor",
    "Lorem ipsum dolor",
    "Lorem ipsum dolor"]
},
{
    "PhaseName": "Finish",
    "Advices": ["Lorem ipsum dolor",
    "Lorem ipsum dolor",
    "Lorem ipsum dolor"]
}

]

And a correspondent class in my code:

public class Advices
{
    public string PhaseName { get; set; }
    public List<string> AdvicesList { get; set; }
}

And a veriable that represents an array of Advices objects:

public class MyAdvices
{
    private Advices[] MyAdvicesArrays;
....

So when I am trying to deserialize my JSON like that:

MyAdvicesArrays= JsonConvert.DeserializeObject<Advices[]>(sMyJSON));

JSON.Net populates "Phase Name" property of each object in my MyAdvicesArrays array with correct value but Advices array of each object is invalid: "Could not evaluate expression" if you check them in runtime. I don't get it. What I've done wrong?

like image 466
Alex Avatar asked Feb 17 '26 03:02

Alex


1 Answers

Your json is not valid according to the entities.

In your type change AdvicesList to Advices.

public List<string> AdvicesList { get; set; }

Change it to

public List<string> Advices { get; set; }
like image 174
Asif Mushtaq Avatar answered Feb 19 '26 17:02

Asif Mushtaq