1

JSON String

[{"Program":"eBay US","Date":"/Date(1384108200000)/","TimePlus":"/Date(-62135596800000)/","Campaign":"cwsi12","Clicks":0,"EPC":3.3799,"Earnings":6.7599,"CampaignID":"5337412363","Impression":"0","Status":"Duplicate in Database"},{"Program":"eBay US","Date":"/Date(1384108200000)/","TimePlus":"/Date(-62135596800000)/","Campaign":"cwsi12","Clicks":0,"EPC":3.3799,"Earnings":6.7599,"CampaignID":"5337412363","Impression":"0","Status":"Duplicate in Database"},{"Program":"eBay US","Date":"/Date(1384108200000)/","TimePlus":"/Date(-62135596800000)/","Campaign":"cwsi12","Clicks":0,"EPC":3.3799,"Earnings":6.7599,"CampaignID":"5337412363","Impression":"0","Status":"Duplicate in Database"},{"Program":"eBay US","Date":"/Date(1384108200000)/","TimePlus":"/Date(-62135596800000)/","Campaign":"cwsi12","Clicks":0,"EPC":3.3799,"Earnings":6.7599,"CampaignID":"5337412363","Impression":"0","Status":"Duplicate in Database"}]

View Model

public class EbayEarnings_Temp
{
    public String Program { get; set; }
    public DateTime Date { get; set; }
    public DateTime TimePlus { get; set; }
    public String Campaign { get; set; }
    public int Clicks { get; set; }
    public decimal EPC { get; set; }
    public decimal Earnings { get; set; }
    public String CampaignID { get; set; }
    public String Impression { get; set; }
    public string Status { get; set; }
}

var serializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(EbayEarnings_Temp));
var c = (EbayEarnings_Temp)serializer.ReadObject(jsonString);

I am getting this error

Unexpected character encountered while parsing value: S. Path '', line 0, position 0.

1 Answer 1

1

Message is json object not list. You must have integrated serializer or serialize json object in action manually. I think it must look like this:

public ActionResult action(Object Message)
{    
    // deserialise if Object Message is a string
    var serializer = new JavaScriptSerializer();
    var c = serializer.Deserialize<YourClass>(Message);

    // deserialise if Object Message is a JsonObject
    var serializer = new DataContractJsonSerializer(typeof(YourClass));
    var c = (YourClass)serializer.ReadObject(Message);

    return PartialView(Message);
}

or another solution:

I use library Newtonsoft.Json. If you're going to use it in your case it would look like:

...    
MyClass m = JsonConvert.DeserializeObject<Message>(message.ToString());
var status = m.Status; //...and so on
Sign up to request clarification or add additional context in comments.

1 Comment

Lookup JavaScriptSerializer for deserializing string or DataContractJsonSerializer (msdn.microsoft.com/en-us/library/bb908232.aspx) if its Json object. I've updated @Maksim Pavlov's answer with deserialization options.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.