user2274356
user2274356

Reputation: 135

Access elements in JSON array

I use an API which returns JSON. I'm having trouble with accessing elements when they are not in an array.

My JSON looks like this:

On the JSON of 2, I can access the elements with

dataJson.Storingen.Ongepland.Storing.@elementName@

However, when I use the JSON of 1, I get the following exception:

Additional information: Newtonsoft.Json.Linq.JProperty does not contain a definition for Traject

Upvotes: 0

Views: 1294

Answers (3)

Pedro Lins
Pedro Lins

Reputation: 21

The structure of second json is different about the first. In second case, you should use dataJson.Storingen.Ongepland.Storing[0].@property to access the property that you want.

But if you want to roll up in your array, just to use a for

Upvotes: 2

Dein
Dein

Reputation: 40

I know this is an old post, but I thought maybe I could just share my thoughts on this question number 1 I believe, just in case someone from the future saw this.

1st. Create two classes as such:

public Storing Test {get; set;}

public class Storing
{
  public string id {set; get;}
  public string Traject {set; get;}
  public string Periode {set; get;}
}

2nd. In the main program, deserialize the JSON and call the object as such

 TestCase list = new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize<TestCase>(*your web API uri*);

 Console.WriteLine ("id:{0}, Traject{1}, Periode{2}", list.Id, list.Traject, list.Periode);

Upvotes: 0

blas3nik
blas3nik

Reputation: 1381

The two JSONs on that picture are not similar in architecture. The first one has a nested "Storing" object, that has several properties, but in the second case, "Storing" became an array of objects. Is it possible that your object model that you're trying to map to tries to parse this array as a single object?

If so, then I think you need to change the type of "Storing" in your model to an array. You will be able to get the elements then like this: dataJson.Storingen.Ongepland.Storing[0].@elementName@

Upvotes: 1

Related Questions