Sitecore Item Web API and Json.Net Test Drive (Part II –Strongly Typed)

Posted by jonel on ASP.net Weblogs See other posts from ASP.net Weblogs or by jonel
Published on Sun, 18 Nov 2012 21:30:00 GMT Indexed on 2012/11/19 5:02 UTC
Read the original article Hit count: 285

Filed under:
|
|

In the earlier post I did related to this topic, I have talked about using Json.Net to consume the result of Sitecore Item Web API. In that post, I have used the keyword dynamic to express my intention of consuming the returned json of the API.

In this article, I will create some useful classes to write our implementation of consuming the API using strongly-typed. We will start of with the Record class which will hold the top most elements the API will present us.

Record class

Pretty straight forward class. It has 2 properties to hold the statuscode and the result elements. If you intend to use a different property name in your class from the json property, you can do so by passing a string literal of the json property name to the JsonProperty attribute and name your class property differently.

If you look at the earlier post, you will notice that the API returns an array of items that contains all of the Sitecore content item or items and stores them under the result->items array element. To be able to map that array of items, we have to write a collection property and decorate that with the JsonProperty attribute.

Result class

The JsonItem class is a simple class which will map to the corresponding item property contained in the array. If you notice, these properties are just the basic Sitecore fields.

JsonItem class

And here’s the main portion of this post that will binds them all together.

Main

And here’s the output of this code.

Output

In closing, the same result can be achieved using the dynamic keyword or defining classes to map the json propery returned by the Sitecore Item Web API. With a little bit more of coding, you can take advantage of power of strongly-typed solution.

Have a good week ahead of you.

© ASP.net Weblogs or respective owner

Related posts about .NET

Related posts about sitecore