Solved

Deserialize json using json.net

Posted on 2014-04-29
3
476 Views
Last Modified: 2014-04-29
I'm trying to deseriliaze this json response without luck.

Unable to cast object of type 'Newtonsoft.Json.Linq.JArray' to type 'RootObject'.

RootObject rootObject = JsonConvert.DeserializeObject(responseMessage);
What Am I doing wrong?

[{"total_collected_money":{"currency_code":"USD","amount":3497},"tender":[{"type":"CREDIT_CARD","name":"Credit Card","total_money":{"currency_code":"USD","amount":3497},"card_brand":"AMERICAN_EXPRESS","pan_suffix":"9999","entry_method":"SWIPED"}],"inclusive_tax_money":{"currency_code":"USD","amount":0},"id":"xxxx","discount_money":{"currency_code":"USD","amount":-1498},"device":{"name":"iPad"},"net_total_money":{"currency_code":"USD","amount":3401},"tax_money":{"currency_code":"USD","amount":0},"creator_id":"xxxx","merchant_id":"xxxx","refunded_money":{"currency_code":"USD","amount":-13487},"inclusive_tax":[],"refunds":[{"type":"FULL","created_at":"2014-02-20T16:21:32Z","processed_at":"2014-02-20T16:21:32Z","reason":"Canceled Order","refunded_money":{"currency_code":"USD","amount":-3497}}],"additive_tax_money":{"currency_code":"USD","amount":0},"processing_fee_money":{"currency_code":"USD","amount":-96},"tip_money":{"currency_code":"USD","amount":0},"additive_tax":[],"created_at":"2014-02-20T16:20:06Z"}]


public class TotalCollectedMoney
{
    public string currency_code { get; set; }
    public int amount { get; set; }
}

public class TotalMoney
{
    public string currency_code { get; set; }
    public int amount { get; set; }
}

public class Tender
{
    public string type { get; set; }
    public string name { get; set; }
    public TotalMoney total_money { get; set; }
    public string card_brand { get; set; }
    public string pan_suffix { get; set; }
    public string entry_method { get; set; }
}

public class InclusiveTaxMoney
{
    public string currency_code { get; set; }
    public int amount { get; set; }
}

public class DiscountMoney
{
    public string currency_code { get; set; }
    public int amount { get; set; }
}

public class Device
{
    public string name { get; set; }
}

public class NetTotalMoney
{
    public string currency_code { get; set; }
    public int amount { get; set; }
}

public class TaxMoney
{
    public string currency_code { get; set; }
    public int amount { get; set; }
}

public class RefundedMoney
{
    public string currency_code { get; set; }
    public int amount { get; set; }
}

public class RefundedMoney2
{
    public string currency_code { get; set; }
    public int amount { get; set; }
}

public class Refund
{
    public string type { get; set; }
    public string created_at { get; set; }
    public string processed_at { get; set; }
    public string reason { get; set; }
    public RefundedMoney2 refunded_money { get; set; }
}

public class AdditiveTaxMoney
{
    public string currency_code { get; set; }
    public int amount { get; set; }
}

public class ProcessingFeeMoney
{
    public string currency_code { get; set; }
    public int amount { get; set; }
}

public class TipMoney
{
    public string currency_code { get; set; }
    public int amount { get; set; }
}

public class RootObject
{
    public TotalCollectedMoney total_collected_money { get; set; }
    public List<Tender> tender { get; set; }
    public InclusiveTaxMoney inclusive_tax_money { get; set; }
    public string id { get; set; }
    public DiscountMoney discount_money { get; set; }
    public Device device { get; set; }
    public NetTotalMoney net_total_money { get; set; }
    public TaxMoney tax_money { get; set; }
    public string creator_id { get; set; }
    public string merchant_id { get; set; }
    public RefundedMoney refunded_money { get; set; }
    public List<object> inclusive_tax { get; set; }
    public List<Refund> refunds { get; set; }
    public AdditiveTaxMoney additive_tax_money { get; set; }
    public ProcessingFeeMoney processing_fee_money { get; set; }
    public TipMoney tip_money { get; set; }
    public List<object> additive_tax { get; set; }
    public string created_at { get; set; }
}

Open in new window

0
Comment
Question by:JRockFL
  • 2
3 Comments
 
LVL 75

Accepted Solution

by:
käµfm³d   👽 earned 500 total points
ID: 40030061
The "root" of your JSON is an array (note the square brackets). Is that how it should be?
0
 
LVL 8

Author Comment

by:JRockFL
ID: 40030096
Yes, it should be an array. I omitted part of the response.
0
 
LVL 8

Author Comment

by:JRockFL
ID: 40030127
That was it.
I have it now. Thank you!

RootObject[] rootobject = JsonConvert.DeserializeObject<RootObject[]>(responseMessage);

Open in new window

0

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction This article series is supposed to shed some light on the use of IDisposable and objects that inherit from it. In essence, a more apt title for this article would be: using (IDisposable) {}. I’m just not sure how many people would ge…
This article describes a simple method to resize a control at runtime.  It includes ready-to-use source code and a complete sample demonstration application.  We'll also talk about C# Extension Methods. Introduction In one of my applications…
I've attached the XLSM Excel spreadsheet I used in the video and also text files containing the macros used below. https://filedb.experts-exchange.com/incoming/2017/03_w12/1151775/Permutations.txt https://filedb.experts-exchange.com/incoming/201…

792 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question