skip to Main Content

Hi I am trying to deserialize this json. And my application does not do it for me.

i am using c#

any suggestion? thanks

this way i try to deserialize

            var deserialize = resultado.Content.ReadAsStringAsync().Result;
            var a = JsonConvert.DeserializeObject<product>(deserialize);

json received

{"product":{"id":6979552313549,"title":"Balance 100% Whey Protein 2.8kg w/ FREE Magnesium complete powder","body_html":"Mountaineering backpack","vendor":"Balance","product_type":"physical","created_at":"2022-05-16T17:41:57-06:00","handle":"balance-100-whey-protein-2-8kg-w-free-magnesium-complete-powder-1","updated_at":"2022-05-26T12:34:07-06:00","published_at":"2022-05-16T17:41:57-06:00","template_suffix":null,"status":"active","published_scope":"web","tags":"Protein Powders, Specials, Stacks and Packs, Whey Protein Blend (WPI/WPC)","admin_graphql_api_id":"gid://shopify/Product/6979552313549","variants":[{"id":40875072585933,"product_id":6979552313549,"title":"Default Title","price":"700.00","sku":"","position":1,"inventory_policy":"deny","compare_at_price":null,"fulfillment_service":"manual","inventory_management":"shopify","option1":"Default Title","option2":null,"option3":null,"created_at":"2022-05-26T12:34:07-06:00","updated_at":"2022-05-26T12:34:07-06:00","taxable":true,"barcode":null,"grams":0,"image_id":null,"weight":0.0,"weight_unit":"kg","inventory_item_id":42969806831821,"inventory_quantity":0,"old_inventory_quantity":0,"requires_shipping":true,"admin_graphql_api_id":"gid://shopify/ProductVariant/40875072585933"}],"options":[{"id":8937193341133,"product_id":6979552313549,"name":"Title","position":1,"values":["Default Title"]}],"images":[{"id":30230589407437,"product_id":6979552313549,"position":1,"created_at":"2022-05-26T12:34:07-06:00","updated_at":"2022-05-26T12:34:07-06:00","alt":null,"width":2862,"height":2143,"src":"https://cdn.shopify.com/s/files/1/0618/4189/9725/products/Definici_C3_B3n-del-producto-y-servicio_0bf23268-fee3-4b3b-a577-aeaa2336d6fc.png?v=1653590047","variant_ids":[],"admin_graphql_api_id":"gid://shopify/ProductImage/30230589407437"}],"image":{"id":30230589407437,"product_id":6979552313549,"position":1,"created_at":"2022-05-26T12:34:07-06:00","updated_at":"2022-05-26T12:34:07-06:00","alt":null,"width":2862,"height":2143,"src":"https://cdn.shopify.com/s/files/1/0618/4189/9725/products/Definici_C3_B3n-del-producto-y-servicio_0bf23268-fee3-4b3b-a577-aeaa2336d6fc.png?v=1653590047","variant_ids":[],"admin_graphql_api_id":"gid://shopify/ProductImage/30230589407437"}}}

If I have a Model class called "Product"

public class product
{
    public long id { get; set; }
    public string title { get; set; }
    public string body_html { get; set; }
    public string vendor { get; set; }
    public string product_type { get; set; }
    public DateTime created_at { get; set; }
    public string handle { get; set; }
    public DateTime updated_at { get; set; }
    public DateTime published_at { get; set; }
    public object template_suffix { get; set; }
    public string status { get; set; }
    public string published_scope { get; set; }
    public string tags { get; set; }
    public string admin_graphql_api_id { get; set; }
    public List<Models.Producto.Variant> variants { get; set; }
    public List<Models.Producto.Option> options { get; set; }
    public List<Models.Producto.Images> images { get; set; }
    public Models.Producto.Image image { get; set; }
}

2

Answers


  1. try this:

    var response =  JsonConvert.DeserializeObject<Dictionary<<string, string>>(deserialize);
        
    string value =  response["key"];
    
    Login or Signup to reply.
  2. I can see that you are using a wrong class to deserialize json, should be

    var data=JsonConvert.DeserializeObject<Data>(json);
    

    main classes (I highly recommend you to use a Pascal style for property names)

        public partial class Data
        {
            [JsonProperty("product")]
            public Product Product { get; set; }
        }
    
        public partial class Product
        {
            [JsonProperty("id")]
            public long Id { get; set; }
    
            [JsonProperty("title")]
            public string Title { get; set; }
    
            [JsonProperty("body_html")]
            public string BodyHtml { get; set; }
    
            [JsonProperty("vendor")]
            public string Vendor { get; set; }
    
            [JsonProperty("product_type")]
            public string ProductType { get; set; }
    
            [JsonProperty("created_at")]
            public DateTimeOffset CreatedAt { get; set; }
    
            [JsonProperty("handle")]
            public string Handle { get; set; }
    
            [JsonProperty("updated_at")]
            public DateTimeOffset UpdatedAt { get; set; }
    
            [JsonProperty("published_at")]
            public DateTimeOffset PublishedAt { get; set; }
    
            [JsonProperty("template_suffix")]
            public object TemplateSuffix { get; set; }
    
            [JsonProperty("status")]
            public string Status { get; set; }
    
            [JsonProperty("published_scope")]
            public string PublishedScope { get; set; }
    
            [JsonProperty("tags")]
            public string Tags { get; set; }
    
            [JsonProperty("admin_graphql_api_id")]
            public string AdminGraphqlApiId { get; set; }
    
            [JsonProperty("variants")]
            public List<Variant> Variants { get; set; }
    
            [JsonProperty("options")]
            public List<Option> Options { get; set; }
    
            [JsonProperty("images")]
            public List<Image> Images { get; set; }
    
            [JsonProperty("image")]
            public Image Image { get; set; }
        }
    

    other classes

        public partial class Image
        {
            [JsonProperty("id")]
            public long Id { get; set; }
    
            [JsonProperty("product_id")]
            public long ProductId { get; set; }
    
            [JsonProperty("position")]
            public long Position { get; set; }
    
            [JsonProperty("created_at")]
            public DateTimeOffset CreatedAt { get; set; }
    
            [JsonProperty("updated_at")]
            public DateTimeOffset UpdatedAt { get; set; }
    
            [JsonProperty("alt")]
            public object Alt { get; set; }
    
            [JsonProperty("width")]
            public long Width { get; set; }
    
            [JsonProperty("height")]
            public long Height { get; set; }
    
            [JsonProperty("src")]
            public Uri Src { get; set; }
    
            [JsonProperty("variant_ids")]
            public List<object> VariantIds { get; set; }
    
            [JsonProperty("admin_graphql_api_id")]
            public string AdminGraphqlApiId { get; set; }
        }
    
        public partial class Option
        {
            [JsonProperty("id")]
            public long Id { get; set; }
    
            [JsonProperty("product_id")]
            public long ProductId { get; set; }
    
            [JsonProperty("name")]
            public string Name { get; set; }
    
            [JsonProperty("position")]
            public long Position { get; set; }
    
            [JsonProperty("values")]
            public List<string> Values { get; set; }
        }
    
        public partial class Variant
        {
            [JsonProperty("id")]
            public long Id { get; set; }
    
            [JsonProperty("product_id")]
            public long ProductId { get; set; }
    
            [JsonProperty("title")]
            public string Title { get; set; }
    
            [JsonProperty("price")]
            public string Price { get; set; }
    
            [JsonProperty("sku")]
            public string Sku { get; set; }
    
            [JsonProperty("position")]
            public long Position { get; set; }
    
            [JsonProperty("inventory_policy")]
            public string InventoryPolicy { get; set; }
    
            [JsonProperty("compare_at_price")]
            public object CompareAtPrice { get; set; }
    
            [JsonProperty("fulfillment_service")]
            public string FulfillmentService { get; set; }
    
            [JsonProperty("inventory_management")]
            public string InventoryManagement { get; set; }
    
            [JsonProperty("option1")]
            public string Option1 { get; set; }
    
            [JsonProperty("option2")]
            public object Option2 { get; set; }
    
            [JsonProperty("option3")]
            public object Option3 { get; set; }
    
            [JsonProperty("created_at")]
            public DateTimeOffset CreatedAt { get; set; }
    
            [JsonProperty("updated_at")]
            public DateTimeOffset UpdatedAt { get; set; }
    
            [JsonProperty("taxable")]
            public bool Taxable { get; set; }
    
            [JsonProperty("barcode")]
            public object Barcode { get; set; }
    
            [JsonProperty("grams")]
            public long Grams { get; set; }
    
            [JsonProperty("image_id")]
            public object ImageId { get; set; }
    
            [JsonProperty("weight")]
            public long Weight { get; set; }
    
            [JsonProperty("weight_unit")]
            public string WeightUnit { get; set; }
    
            [JsonProperty("inventory_item_id")]
            public long InventoryItemId { get; set; }
    
            [JsonProperty("inventory_quantity")]
            public long InventoryQuantity { get; set; }
    
            [JsonProperty("old_inventory_quantity")]
            public long OldInventoryQuantity { get; set; }
    
            [JsonProperty("requires_shipping")]
            public bool RequiresShipping { get; set; }
    
            [JsonProperty("admin_graphql_api_id")]
            public string AdminGraphqlApiId { get; set; }
        }
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search