I am using this code to attempt to parse my response back from the payment gateway:
var responseMessage = client.PostAsJsonAsync("transaction", transData).Result;
var response = responseMessage.Content.ReadAsStringAsync().Result;
MessageBox.Show(response);
JavaScriptSerializer jsonSerializer = new JavaScriptSerializer();
var objCustomer = jsonSerializer.Deserialize<ReturnValues.RootObject>(response);
This is the class I am trying to create:
public class ReturnValues
{
public class Card
{
public string id { get; set; }
public string card_type { get; set; }
public string first_six { get; set; }
public string last_four { get; set; }
public string masked_card { get; set; }
public string expiration_date { get; set; }
public string status { get; set; }
public string auth_code { get; set; }
public string processor_response_code { get; set; }
public string processor_response_text { get; set; }
public string processor_type { get; set; }
public string processor_id { get; set; }
public string avs_response_code { get; set; }
public string cvv_response_code { get; set; }
public DateTime created_at { get; set; }
public DateTime updated_at { get; set; }
}
public class Response
{
public Card card { get; set; }
}
public class BillingAddress
{
public string first_name { get; set; }
public string last_name { get; set; }
public string company { get; set; }
public string address_line_1 { get; set; }
public string address_line_2 { get; set; }
public string city { get; set; }
public string state { get; set; }
public string postal_code { get; set; }
public string country { get; set; }
public string phone { get; set; }
public string fax { get; set; }
public string email { get; set; }
}
public class ShippingAddress
{
public string first_name { get; set; }
public string last_name { get; set; }
public string company { get; set; }
public string address_line_1 { get; set; }
public string address_line_2 { get; set; }
public string city { get; set; }
public string state { get; set; }
public string postal_code { get; set; }
public string country { get; set; }
public string phone { get; set; }
public string fax { get; set; }
public string email { get; set; }
}
public class Data
{
public string id { get; set; }
public string type { get; set; }
public int amount { get; set; }
public int tax_amount { get; set; }
public bool tax_exempt { get; set; }
public int shipping_amount { get; set; }
public int discount_amount { get; set; }
public string payment_adjustment_type { get; set; }
public int payment_adjustment_value { get; set; }
public string currency { get; set; }
public string description { get; set; }
public string order_id { get; set; }
public string po_number { get; set; }
public string ip_address { get; set; }
public bool email_receipt { get; set; }
public string email_address { get; set; }
public string payment_method { get; set; }
public Response response { get; set; }
public string status { get; set; }
public int response_code { get; set; }
public string customer_id { get; set; }
public BillingAddress billing_address { get; set; }
public ShippingAddress shipping_address { get; set; }
public DateTime created_at { get; set; }
public DateTime updated_at { get; set; }
}
public class RootObject
{
public string status { get; set; }
public string msg { get; set; }
public Data data { get; set; }
}
}
This is the response I am given:
"{\"status\":\"success\",\"msg\":\"success\",\"data\":{\"id\":\"bp2pa41erttupu3q1eng\",\"user_id\":\"bmibms9erttqdc2kigl0\",\"user_name\":\"dev\",\"merchant_id\":\"asdfasdf\",\"idempotency_key\":\"\",\"idempotency_time\":0,\"type\":\"sale\",\"amount\":1000,\"base_amount\":1000,\"amount_authorized\":1000,\"amount_captured\":1000,\"amount_settled\":0,\"amount_refunded\":0,\"payment_adjustment\":0,\"tip_amount\":0,\"settlement_batch_id\":\"\",\"processor_id\":\"bmibnfperttqdc2kigmg\",\"processor_type\":\"tsys_sierra\",\"processor_name\":\"Keyed
Credit
Cards\",\"payment_method\":\"card\",\"payment_type\":\"card\",\"features\":[\"avs\",\"card_verification\",\"levelii\",\"fake_response\"],\"national_tax_amount\":0,\"duty_amount\":0,\"ship_from_postal_code\":\"\",\"summary_commodity_code\":\"\",\"merchant_vat_registration_number\":\"\",\"customer_vat_registration_number\":\"\",\"tax_amount\":0,\"tax_exempt\":false,\"shipping_amount\":0,\"surcharge\":0,\"discount_amount\":0,\"currency\":\"usd\",\"description\":\"This
is a
test\",\"order_id\":\"555555\",\"po_number\":\"666666\",\"ip_address\":\"1.1.1.1\",\"transaction_source\":\"api\",\"email_receipt\":false,\"email_address\":\"\",\"customer_id\":\"\",\"customer_payment_type\":\"\",\"customer_payment_ID\":\"\",\"subscription_id\":\"\",\"referenced_transaction_id\":\"\",\"response_body\":{\"card\":{\"id\":\"bp2pa41erttupu3q1eo0\",\"card_type\":\"visa\",\"first_six\":\"401288\",\"last_four\":\"1881\",\"masked_card\":\"401288******1881\",\"expiration_date\":\"12/21\",\"response\":\"approved\",\"response_code\":100,\"auth_code\":\"TAS000\",\"processor_response_code\":\"00\",\"processor_response_text\":\"APPROVAL
TAS000
\",\"processor_transaction_id\":\"000000000000000\",\"processor_type\":\"tsys_sierra\",\"processor_id\":\"bmgwgtgtherhemg\",\"avs_response_code\":\"M\",\"cvv_response_code\":\"M\",\"processor_specific\":null,\"created_at\":\"2020-02-13T18:27:28.149933095Z\",\"updated_at\":\"2020-02-13T18:27:28.196367669Z\"}},\"custom_fields\":{},\"line_items\":null,\"status\":\"pending_settlement\",\"response\":\"approved\",\"response_code\":100,\"billing_address\":{\"first_name\":\"John\",\"last_name\":\"Doe\",\"company\":\"\",\"address_line_1\":\"123
Some
Street\",\"address_line_2\":\"\",\"city\":\"Bessemer\",\"state\":\"AL\",\"postal_code\":\"35020\",\"country\":\"US\",\"phone\":\"5555555555\",\"fax\":\"\",\"email\":\"test#gmail.com\"},\"shipping_address\":{\"first_name\":\"\",\"last_name\":\"\",\"company\":\"\",\"address_line_1\":\"\",\"address_line_2\":\"\",\"city\":\"\",\"state\":\"\",\"postal_code\":\"\",\"country\":\"\",\"phone\":\"\",\"fax\":\"\",\"email\":\"\"},\"created_at\":\"2020-02-13T18:27:28.104845544Z\",\"updated_at\":\"2020-02-13T18:27:28.200963331Z\",\"captured_at\":\"2020-02-13T18:27:28.200962679Z\",\"settled_at\":null}}\n"
I am getting this message:
System.InvalidOperationException: 'Cannot convert object of type
'System.String' to type 'Test.ReturnValues+Response''
I am not sure what I am doing wrong. I used an online json converter to get my class. It appears to be correct.
Any suggestions?
I used json2csharp.com to generate C# classes and it came up with something different.
public class ReturnValues
{
public class Card
{
public string id { get; set; }
public string card_type { get; set; }
public string first_six { get; set; }
public string last_four { get; set; }
public string masked_card { get; set; }
public string expiration_date { get; set; }
public string response { get; set; }
public int response_code { get; set; }
public string auth_code { get; set; }
public string processor_response_code { get; set; }
public string processor_response_text { get; set; }
public string processor_transaction_id { get; set; }
public string processor_type { get; set; }
public string processor_id { get; set; }
public string avs_response_code { get; set; }
public string cvv_response_code { get; set; }
public object processor_specific { get; set; }
public string created_at { get; set; }
public string updated_at { get; set; }
}
public class ResponseBody
{
public Card card { get; set; }
}
public class CustomFields
{
}
public class BillingAddress
{
public string first_name { get; set; }
public string last_name { get; set; }
public string company { get; set; }
public string address_line_1 { get; set; }
public string address_line_2 { get; set; }
public string city { get; set; }
public string state { get; set; }
public string postal_code { get; set; }
public string country { get; set; }
public string phone { get; set; }
public string fax { get; set; }
public string email { get; set; }
}
public class ShippingAddress
{
public string first_name { get; set; }
public string last_name { get; set; }
public string company { get; set; }
public string address_line_1 { get; set; }
public string address_line_2 { get; set; }
public string city { get; set; }
public string state { get; set; }
public string postal_code { get; set; }
public string country { get; set; }
public string phone { get; set; }
public string fax { get; set; }
public string email { get; set; }
}
public class Data
{
public string id { get; set; }
public string user_id { get; set; }
public string user_name { get; set; }
public string merchant_id { get; set; }
public string idempotency_key { get; set; }
public int idempotency_time { get; set; }
public string type { get; set; }
public int amount { get; set; }
public int base_amount { get; set; }
public int amount_authorized { get; set; }
public int amount_captured { get; set; }
public int amount_settled { get; set; }
public int amount_refunded { get; set; }
public int payment_adjustment { get; set; }
public int tip_amount { get; set; }
public string settlement_batch_id { get; set; }
public string processor_id { get; set; }
public string processor_type { get; set; }
public string processor_name { get; set; }
public string payment_method { get; set; }
public string payment_type { get; set; }
public List<string> features { get; set; }
public int national_tax_amount { get; set; }
public int duty_amount { get; set; }
public string ship_from_postal_code { get; set; }
public string summary_commodity_code { get; set; }
public string merchant_vat_registration_number { get; set; }
public string customer_vat_registration_number { get; set; }
public int tax_amount { get; set; }
public bool tax_exempt { get; set; }
public int shipping_amount { get; set; }
public int surcharge { get; set; }
public int discount_amount { get; set; }
public string currency { get; set; }
public string description { get; set; }
public string order_id { get; set; }
public string po_number { get; set; }
public string ip_address { get; set; }
public string transaction_source { get; set; }
public bool email_receipt { get; set; }
public string email_address { get; set; }
public string customer_id { get; set; }
public string customer_payment_type { get; set; }
public string customer_payment_ID { get; set; }
public string subscription_id { get; set; }
public string referenced_transaction_id { get; set; }
public ResponseBody response_body { get; set; }
public CustomFields custom_fields { get; set; }
public object line_items { get; set; }
public string status { get; set; }
public string response { get; set; }
public int response_code { get; set; }
public BillingAddress billing_address { get; set; }
public ShippingAddress shipping_address { get; set; }
public string created_at { get; set; }
public string updated_at { get; set; }
public string captured_at { get; set; }
public object settled_at { get; set; }
}
public class RootObject
{
public string status { get; set; }
public string msg { get; set; }
public Data data { get; set; }
}
}
It seems to work though. I did a quick compare and there are quite a few differences. Might be worth checking out.
use jsoup it is a free framework it parse the document into json format easily
`list<Element> news;
Document doc = Jsoup.connect("https://en.wikipedia.org/").get();
log(doc.title());
Elements newsHeadlines = doc.select("#mp-itn b a");
for (Element headline : news) {
log("%s\n\t%s",
headline.attr("title"), headline.absUrl("href"));
}`
I am trying to post a serialized object using RestSharp object is :
public class WebCRMOrganisation : IWebCRMOrganisation
{
[JsonProperty("OrganisationAddress")]
public string OrganisationAddress { get; set; }
[JsonProperty("OrganisationAlert")]
public string OrganisationAlert { get; set; }
[JsonProperty("OrganisationApprovalStatus")]
public long OrganisationApprovalStatus { get; set; }
[JsonProperty("OrganisationCity")]
public string OrganisationCity { get; set; }
[JsonProperty("OrganisationComment")]
public string OrganisationComment { get; set; }
[JsonProperty("OrganisationCompareName")]
public string OrganisationCompareName { get; set; }
[JsonProperty("OrganisationCountry")]
public string OrganisationCountry { get; set; }
[JsonProperty("OrganisationCreatedAt")]
public System.DateTimeOffset OrganisationCreatedAt { get; set; }
[JsonProperty("OrganisationCreatedBy")]
public string OrganisationCreatedBy { get; set; }
[JsonProperty("OrganisationDivisionName")]
public string OrganisationDivisionName { get; set; }
[JsonProperty("OrganisationDomain")]
public string OrganisationDomain { get; set; }
[JsonProperty("OrganisationExtraCustom1")]
public string OrganisationExtraCustom1 { get; set; }
[JsonProperty("OrganisationExtraCustom2")]
public string OrganisationExtraCustom2 { get; set; }
[JsonProperty("OrganisationExtraCustom3")]
public string OrganisationExtraCustom3 { get; set; }
[JsonProperty("OrganisationExtraCustom4")]
public string OrganisationExtraCustom4 { get; set; }
[JsonProperty("OrganisationExtraCustom5")]
public string OrganisationExtraCustom5 { get; set; }
[JsonProperty("OrganisationExtraCustom6")]
public string OrganisationExtraCustom6 { get; set; }
[JsonProperty("OrganisationExtraCustom7")]
public string OrganisationExtraCustom7 { get; set; }
[JsonProperty("OrganisationExtraCustom8")]
public string OrganisationExtraCustom8 { get; set; }
[JsonProperty("OrganisationFax")]
public string OrganisationFax { get; set; }
[JsonProperty("OrganisationGps")]
public string OrganisationGps { get; set; }
[JsonProperty("OrganisationId")]
public long OrganisationId { get; set; }
[JsonProperty("OrganisationImageFileExtension")]
public string OrganisationImageFileExtension { get; set; }
[JsonProperty("OrganisationIndustry")]
public string OrganisationIndustry { get; set; }
[JsonProperty("OrganisationLastDisplayedAt")]
public System.DateTimeOffset OrganisationLastDisplayedAt { get; set; }
[JsonProperty("OrganisationLastItemType")]
public string OrganisationLastItemType { get; set; }
[JsonProperty("OrganisationLastItemUpdatedAt")]
public System.DateTimeOffset OrganisationLastItemUpdatedAt { get; set; }
[JsonProperty("OrganisationMarketDataId")]
public string OrganisationMarketDataId { get; set; }
[JsonProperty("OrganisationName")]
public string OrganisationName { get; set; }
[JsonProperty("OrganisationNoAds")]
public bool OrganisationNoAds { get; set; }
[JsonProperty("OrganisationHistory")]
public string OrganisationHistory { get; set; }
[JsonProperty("OrganisationOutlookSync")]
public long OrganisationOutlookSync { get; set; }
[JsonProperty("OrganisationOverlayUrl")]
public string OrganisationOverlayUrl { get; set; }
[JsonProperty("OrganisationOwner")]
public long OrganisationOwner { get; set; }
[JsonProperty("OrganisationOwner2")]
public long OrganisationOwner2 { get; set; }
[JsonProperty("OrganisationPostCode")]
public string OrganisationPostCode { get; set; }
[JsonProperty("OrganisationReportTemp")]
public long OrganisationReportTemp { get; set; }
[JsonProperty("OrganisationSla")]
public long OrganisationSla { get; set; }
[JsonProperty("OrganisationState")]
public string OrganisationState { get; set; }
[JsonProperty("OrganisationStatus")]
public string OrganisationStatus { get; set; }
[JsonProperty("OrganisationTelephone")]
public string OrganisationTelephone { get; set; }
[JsonProperty("OrganisationTelephoneSearch")]
public string OrganisationTelephoneSearch { get; set; }
[JsonProperty("OrganisationTerritoryId")]
public long OrganisationTerritoryId { get; set; }
[JsonProperty("OrganisationType")]
public string OrganisationType { get; set; }
[JsonProperty("OrganisationUpdatedAt")]
public System.DateTimeOffset OrganisationUpdatedAt { get; set; }
[JsonProperty("OrganisationUpdatedBy")]
public string OrganisationUpdatedBy { get; set; }
[JsonProperty("OrganisationVatCountry")]
public string OrganisationVatCountry { get; set; }
[JsonProperty("OrganisationVatGroup")]
public string OrganisationVatGroup { get; set; }
[JsonProperty("OrganisationVatNumber")]
public string OrganisationVatNumber { get; set; }
[JsonProperty("OrganisationVatStatus")]
public string OrganisationVatStatus { get; set; }
[JsonProperty("OrganisationVatVerifiedAt")]
public System.DateTimeOffset OrganisationVatVerifiedAt { get; set; }
[JsonProperty("OrganisationWww")]
public string OrganisationWww { get; set; }
[JsonProperty("OrganisationXDate1")]
public System.DateTimeOffset OrganisationXDate1 { get; set; }
[JsonProperty("OrganisationXDate2")]
public System.DateTimeOffset OrganisationXDate2 { get; set; }
[JsonProperty("OrganisationXInt1")]
public long OrganisationXInt1 { get; set; }
[JsonProperty("OrganisationXInt2")]
public long OrganisationXInt2 { get; set; }
[JsonProperty("OrganisationXInt3")]
public long OrganisationXInt3 { get; set; }
[JsonProperty("OrganisationXInt4")]
public long OrganisationXInt4 { get; set; }
[JsonProperty("OrganisationXInt5")]
public long OrganisationXInt5 { get; set; }
[JsonProperty("OrganisationXInt6")]
public long OrganisationXInt6 { get; set; }
[JsonProperty("OrganisationXInt7")]
public long OrganisationXInt7 { get; set; }
[JsonProperty("OrganisationXInt8")]
public long OrganisationXInt8 { get; set; }
[JsonProperty("OrganisationXMemo1")]
public string OrganisationXMemo1 { get; set; }
[JsonProperty("OrganisationXMemo2")]
public string OrganisationXMemo2 { get; set; }
[JsonProperty("OrganisationXText1")]
public string OrganisationXText1 { get; set; }
[JsonProperty("OrganisationXText2")]
public string OrganisationXText2 { get; set; }
[JsonProperty("OrganisationXText3")]
public string OrganisationXText3 { get; set; }
[JsonProperty("OrganisationXText4")]
public string OrganisationXText4 { get; set; }
[JsonProperty("OrganisationXText5")]
public string OrganisationXText5 { get; set; }
[JsonProperty("OrganisationXText6")]
public string OrganisationXText6 { get; set; }
[JsonProperty("OrganisationXText7")]
public string OrganisationXText7 { get; set; }
[JsonProperty("OrganisationXText8")]
public string OrganisationXText8 { get; set; }
[JsonProperty("OrganisationPlus1")]
public string OrganisationPlus1 { get; set; }
[JsonProperty("OrganisationPlus2")]
public string OrganisationPlus2 { get; set; }
[JsonProperty("OrganisationPlus3")]
public string OrganisationPlus3 { get; set; }
[JsonProperty("OrganisationPlus4")]
public string OrganisationPlus4 { get; set; }
[JsonProperty("OrganisationPlus5")]
public string OrganisationPlus5 { get; set; }
[JsonProperty("OrganisationPlus6")]
public string OrganisationPlus6 { get; set; }
[JsonProperty("OrganisationPlus7")]
public string OrganisationPlus7 { get; set; }
[JsonProperty("OrganisationPlus8")]
public string OrganisationPlus8 { get; set; }
[JsonProperty("OrganisationPlus9")]
public string OrganisationPlus9 { get; set; }
[JsonProperty("OrganisationPlus10")]
public string OrganisationPlus10 { get; set; }
[JsonProperty("OrganisationPlus11")]
public string OrganisationPlus11 { get; set; }
[JsonProperty("OrganisationPlus12")]
public string OrganisationPlus12 { get; set; }
[JsonProperty("OrganisationPlus13")]
public string OrganisationPlus13 { get; set; }
[JsonProperty("OrganisationPlus14")]
public string OrganisationPlus14 { get; set; }
[JsonProperty("OrganisationPlus15")]
public string OrganisationPlus15 { get; set; }
[JsonProperty("OrganisationPlus16")]
public string OrganisationPlus16 { get; set; }
[JsonProperty("OrganisationPlus17")]
public string OrganisationPlus17 { get; set; }
[JsonProperty("OrganisationPlus18")]
public string OrganisationPlus18 { get; set; }
[JsonProperty("OrganisationPlus19")]
public string OrganisationPlus19 { get; set; }
[JsonProperty("OrganisationPlus20")]
public string OrganisationPlus20 { get; set; }
[JsonProperty("OrganisationCustom1")]
public string OrganisationCustom1 { get; set; }
[JsonProperty("OrganisationCustom2")]
public string OrganisationCustom2 { get; set; }
[JsonProperty("OrganisationCustom3")]
public string OrganisationCustom3 { get; set; }
[JsonProperty("OrganisationCustom4")]
public string OrganisationCustom4 { get; set; }
[JsonProperty("OrganisationCustom5")]
public string OrganisationCustom5 { get; set; }
[JsonProperty("OrganisationCustom6")]
public string OrganisationCustom6 { get; set; }
[JsonProperty("OrganisationCustom7")]
public string OrganisationCustom7 { get; set; }
[JsonProperty("OrganisationCustom8")]
public string OrganisationCustom8 { get; set; }
[JsonProperty("OrganisationCustom9")]
public string OrganisationCustom9 { get; set; }
[JsonProperty("OrganisationCustom10")]
public string OrganisationCustom10 { get; set; }
[JsonProperty("OrganisationCustom11")]
public string OrganisationCustom11 { get; set; }
[JsonProperty("OrganisationCustom12")]
public string OrganisationCustom12 { get; set; }
[JsonProperty("OrganisationCustom13")]
public string OrganisationCustom13 { get; set; }
[JsonProperty("OrganisationCustom14")]
public string OrganisationCustom14 { get; set; }
[JsonProperty("OrganisationCustom15")]
public string OrganisationCustom15 { get; set; }
[JsonProperty("OrganisationMemo")]
public string OrganisationMemo { get; set; }
}
I have tried the following code but every time I am getting bad request in response, I have checked API reference documentation JSON format is correct and I have also tried API's swagger reference I am able to use their methods fine.
var client = new RestClient("https://api.webcrm.com");
var request = new RestRequest("Organisations", Method.POST);
request.AddHeader("Accept", "application/json");
request.AddHeader("Content-Type", "application/json");
request.RequestFormat = DataFormat.Json;
request.AddParameter("application/json", JsonConvert.SerializeObject(organisation),
ParameterType.RequestBody);
WebCRMConnectivityResult c = CheckConnectivity();
request.AddHeader("Authorization", string.Format("Bearer {0}",c.AccessToken));
//request.RootElement = "organisation";
IRestResponse response = client.Execute(request);
var content = response.Content;
Can anyone please tell me what could be the issue?
Through webrequest I am getting response text which is in Json I use Newtonsoft.Json to parse. I created classes with the help of examples from stackoverflow website but couldn't figure out how to loop whole response into an array or datatable/dataview.
JsonSerializer serializer = new JsonSerializer();
public class Link
{
public string rel { get; set; }
public string href { get; set; }
}
public class Naeringskode1
{
public string kode { get; set; }
public string beskrivelse { get; set; }
}
public class Postadresse
{
public string adresse { get; set; }
public string postnummer { get; set; }
public string poststed { get; set; }
public string kommunenummer { get; set; }
public string kommune { get; set; }
public string landkode { get; set; }
public string land { get; set; }
}
public class Beliggenhetsadresse
{
public string adresse { get; set; }
public string postnummer { get; set; }
public string poststed { get; set; }
public string kommunenummer { get; set; }
public string kommune { get; set; }
public string landkode { get; set; }
public string land { get; set; }
}
public class Link2
{
public string rel { get; set; }
public string href { get; set; }
}
public class Naeringskode2
{
public string kode { get; set; }
public string beskrivelse { get; set; }
}
public class Datum
{
public int organisasjonsnummer { get; set; }
public string navn { get; set; }
public string organisasjonsform { get; set; }
public string registreringsdatoEnhetsregisteret { get; set; }
public string registrertIMvaregisteret { get; set; }
public int antallAnsatte { get; set; }
public Naeringskode1 naeringskode1 { get; set; }
public Postadresse postadresse { get; set; }
public Beliggenhetsadresse beliggenhetsadresse { get; set; }
public int overordnetEnhet { get; set; }
public List<Link2> links { get; set; }
public string hjemmeside { get; set; }
public Naeringskode2 naeringskode2 { get; set; }
}
public class Page
{
public int size { get; set; }
public int page { get; set; }
}
public class RootObject
{
public List<Link> links { get; set; }
public List<Datum> data { get; set; }
public Page page { get; set; }
}
I'm trying to deserialize JSON from a url using the following code. I'm getting an empty object even though I'm downloading a valid JSON string.
public static void tryjson() {
string json = new WebClient().DownloadString("http://www.sofascore.com/football/livescore/json");
SportItem sportItem = JsonConvert.DeserializeObject<SportItem>(json);
}
Classes:
public class Sport {
public int id { get; set; }
public string name { get; set; }
public string slug { get; set; }
}
public class Tournament2 {
public int id { get; set; }
public string name { get; set; }
public string slug { get; set; }
public int priority { get; set; }
public int order { get; set; }
public int uniqueId { get; set; }
public string uniqueName { get; set; }
}
public class Category {
public int id { get; set; }
public string name { get; set; }
public string slug { get; set; }
public int priority { get; set; }
public List<object> mcc { get; set; }
public string flag { get; set; }
}
public class Season {
public int id { get; set; }
public string name { get; set; }
public string slug { get; set; }
public string year { get; set; }
}
public class HomeScore {
public int current { get; set; }
public int period1 { get; set; }
public int normaltime { get; set; }
public int? aggregated { get; set; }
public int? penalties { get; set; }
public int? overtime { get; set; }
}
public class AwayScore {
public int current { get; set; }
public int period1 { get; set; }
public int normaltime { get; set; }
public int? aggregated { get; set; }
public int? penalties { get; set; }
public int? overtime { get; set; }
}
public class Status {
public int code { get; set; }
public string type { get; set; }
}
public class Changes {
public string changeDate { get; set; }
public List<object> changes { get; set; }
public int changeTimestamp { get; set; }
public bool hasExpired { get; set; }
public bool hasHomeChanges { get; set; }
public bool hasAwayChanges { get; set; }
}
public class RoundInfo {
public int round { get; set; }
public string name { get; set; }
}
public class Sport2 {
public int id { get; set; }
public string name { get; set; }
public string slug { get; set; }
}
public class HomeTeam {
public int id { get; set; }
public string name { get; set; }
public string slug { get; set; }
public string gender { get; set; }
public List<object> subTeams { get; set; }
}
public class AwayTeam {
public int id { get; set; }
public string name { get; set; }
public string slug { get; set; }
public string gender { get; set; }
public List<object> subTeams { get; set; }
}
public class Odds {
public int id { get; set; }
public double odds1 { get; set; }
public double oddsX { get; set; }
public double odds2 { get; set; }
public double odds1X { get; set; }
public double oddsX2 { get; set; }
public double odds12 { get; set; }
public double liveOdds1 { get; set; }
public double liveOddsX { get; set; }
public double liveOdds2 { get; set; }
public double liveOdds1X { get; set; }
public double liveOddsX2 { get; set; }
public double liveOdds12 { get; set; }
public string fractionalOdds1 { get; set; }
public string fractionalOddsX { get; set; }
public string fractionalOdds2 { get; set; }
public string fractionalOdds1X { get; set; }
public string fractionalOddsX2 { get; set; }
public string fractionalOdds12 { get; set; }
public string liveFractionalOdds1 { get; set; }
public string liveFractionalOddsX { get; set; }
public string liveFractionalOdds2 { get; set; }
public string liveFractionalOdds1X { get; set; }
public string liveFractionalOddsX2 { get; set; }
public string liveFractionalOdds12 { get; set; }
public string americanOdds1 { get; set; }
public string americanOddsX { get; set; }
public string americanOdds2 { get; set; }
public string americanOdds1X { get; set; }
public string americanOddsX2 { get; set; }
public string americanOdds12 { get; set; }
public string liveAmericanOdds1 { get; set; }
public string liveAmericanOddsX { get; set; }
public string liveAmericanOdds2 { get; set; }
public string liveAmericanOdds1X { get; set; }
public string liveAmericanOddsX2 { get; set; }
public string liveAmericanOdds12 { get; set; }
public int odds1Change { get; set; }
public int oddsXChange { get; set; }
public int odds2Change { get; set; }
public int odds1XChange { get; set; }
public int oddsX2Change { get; set; }
public int odds12Change { get; set; }
public string bet365OddsId1 { get; set; }
public string bet365OddsIdX { get; set; }
public string bet365OddsId2 { get; set; }
public string bet365OddsId1X { get; set; }
public string bet365OddsIdX2 { get; set; }
public string bet365OddsId12 { get; set; }
public string betSlipLink1 { get; set; }
public string betSlipLinkX { get; set; }
public string betSlipLink2 { get; set; }
public string betSlipLink1X { get; set; }
public string betSlipLinkX2 { get; set; }
public string betSlipLink12 { get; set; }
public bool liveOddsEnabled { get; set; }
public bool liveDoubleChanceOddsEnabled { get; set; }
}
public class Event {
public int id { get; set; }
public string customId { get; set; }
public HomeScore homeScore { get; set; }
public AwayScore awayScore { get; set; }
public Status status { get; set; }
public int winnerCode { get; set; }
public Changes changes { get; set; }
public RoundInfo roundInfo { get; set; }
public Sport2 sport { get; set; }
public HomeTeam homeTeam { get; set; }
public AwayTeam awayTeam { get; set; }
public Odds odds { get; set; }
public bool hasHighlights { get; set; }
public bool hasHighlightsStream { get; set; }
public bool hasEventPlayerStatistics { get; set; }
public bool hasEventPlayerHeatMap { get; set; }
public int rowCount { get; set; }
public int homeRedCards { get; set; }
public int awayRedCards { get; set; }
public string statusDescription { get; set; }
public bool hasLiveForm { get; set; }
public string name { get; set; }
public string startTime { get; set; }
public string formatedStartDate { get; set; }
public int startTimestamp { get; set; }
public string slug { get; set; }
public bool hasLineupsList { get; set; }
public bool hasOdds { get; set; }
public bool hasLiveOdds { get; set; }
public bool hasFirstToServe { get; set; }
public bool hasDraw { get; set; }
public bool isSyncable { get; set; }
public int? aggregatedWinnerCode { get; set; }
}
public class Tournament {
public Tournament2 tournament { get; set; }
public Category category { get; set; }
public Season season { get; set; }
public bool hasEventPlayerStatistics { get; set; }
public bool hasEventPlayerHeatMap { get; set; }
public List<Event> events { get; set; }
}
public class SportItem {
public Sport sport { get; set; }
public int rows { get; set; }
public List<Tournament> tournaments { get; set; }
}
public class Params {
public string sport { get; set; }
public object category { get; set; }
public string date { get; set; }
}
public class RootObject {
public SportItem sportItem { get; set; }
public Params #params { get; set; }
public bool isShortDate { get; set; }
}
What am I doing wrong?
Try this:
System.Net.WebClient wc = new System.Net.WebClient();
wc.DownloadStringCompleted += (s, u) =>
{
DownloadStringCompleted(s, u);
};
wc.DownloadStringAsync(new Uri("http://www.sofascore.com/football/livescore/json"));
private void DownloadStringCompleted(object s, DownloadStringCompletedEventArgs u)
{
try
{
var Item = JsonConvert.DeserializeObject<RootObject>(u.Result.ToString());
}
catch (Exception ex)
{ }
}
It looks like you need to parse into the json object first. Example:-
var data = (JObject)JsonConvert.DeserializeObject(resultJson);
An exception of type
'Newtonsoft.Json.JsonSerializationException' occurred in
Newtonsoft.Json.DLL but was not handled in user code
Additional information: Error converting value {null} to type
'System.Boolean'. Path 'collection[8].downloadable', line 1, position
22866.
or
converter value {null} from path 'track[40].like_count
?
I use Json. How to fix it?
public class User
{
public string full_name { get; set; }
public string country { get; set; }
public string city { get; set; }
public int tracks_count { get; set; }
public int followers_count { get; set; }
public int followings_count { get; set; }
public int public_favorites_count { get; set; }
public int groups_count { get; set; }
public string description { get; set; }
public string plan { get; set; }
public int id { get; set; }
public string uri { get; set; }
public string username { get; set; }
public string kind { get; set; }
public string permalink { get; set; }
public string permalink_url { get; set; }
public string first_name { get; set; }
public string avatar_url { get; set; }
public string last_modified { get; set; }
}
public class __invalid_type__0
{
public string urn { get; set; }
public int entry_time { get; set; }
public string visual_url { get; set; }
public object link { get; set; }
}
public class Visuals2
{
public __invalid_type__0 __invalid_name__0 { get; set; }
}
public class Visuals
{
public string urn { get; set; }
public bool enabled { get; set; }
public Visuals2 visuals { get; set; }
public object tracking { get; set; }
}
public class Collection
{
public User user { get; set; }
public int user_id { get; set; }
public string genre { get; set; }
public string tag_list { get; set; }
public int duration { get; set; }
public bool downloadable { get; set; }
public bool streamable { get; set; }
public int original_content_size { get; set; }
public bool commentable { get; set; }
public string sharing { get; set; }
public bool #public { get; set; }
public string created_at { get; set; }
public string updated_at { get; set; }
public string isrc { get; set; }
public string state { get; set; }
public bool embeddable { get; set; }
public string embeddable_by { get; set; }
public string license { get; set; }
public string waveform_url { get; set; }
public bool feedable { get; set; }
public string label_name { get; set; }
public string release_date { get; set; }
public bool has_downloads_left { get; set; }
public string purchase_title { get; set; }
public string purchase_url { get; set; }
public string policy { get; set; }
public string monetization_model { get; set; }
public Visuals visuals { get; set; }
public string permalink { get; set; }
public string title { get; set; }
public string description { get; set; }
public string track_type { get; set; }
public string last_modified { get; set; }
public string artwork_url { get; set; }
public int id { get; set; }
public string kind { get; set; }
public int comment_count { get; set; }
public int download_count { get; set; }
public string uri { get; set; }
public string stream_url { get; set; }
public int playback_count { get; set; }
public string download_url { get; set; }
public object secret_token { get; set; }
public int reposts_count { get; set; }
public string permalink_url { get; set; }
public int likes_count { get; set; }
}
public class Facet2
{
public string filter { get; set; }
public int count { get; set; }
public string value { get; set; }
}
public class Facet
{
public string name { get; set; }
public List<Facet2> facets { get; set; }
}
public class RootObject
{
public List<Collection> collection { get; set; }
public List<Facet> facets { get; set; }
public int total_results { get; set; }
public string qid { get; set; }
public string query_urn { get; set; }
public string next_href { get; set; }
}