Deserializacja JSON

0

Mam coś takiego:

  "status": "SUCCESS",
  "storage_id": 1,
  "products": {
    "69327371": {
      "product_id": 69327371,
      "ean": null,
      "sku": "test",
      "name": "test",
      "quantity": 0,
      "price_wholesale_netto": 0,
      "tax_rate": 0,
      "weight": 0,
      "description": null,
      "description_extra1": "",
      "description_extra2": "",
      "man_name": null,
      "man_image": null,
      "category_id": 1025134,
      "features": [],
      "price_brutto": 0,
      "price_netto": 0,
      "images": [
        null
      ],
      "variants": []
    },
    "69327372": {
      "product_id": 69327372,
      "ean": null,
      "sku": "test2",
      "name": "test2",
      "quantity": 0,
      "price_wholesale_netto": 0,
      "tax_rate": 0,
      "weight": 0,
      "description": null,
      "description_extra1": "",
      "description_extra2": "",
      "man_name": null,
      "man_image": null,
      "category_id": 1025134,
      "features": [],
      "price_brutto": 0,
      "price_netto": 0,
      "images": [
        null
      ],
      "variants": []
    }
  }
}

Teraz pytanie jak by najprościej wykonać deserializację tego? Coś tam kombinuję, ale nic nie chce mi zadziałaś. Wklejenie w VS nie daje żadnego rozwiązania

0

@Spine: Wydaje mi się, że jego problem nie ma nic wspólnego z Unity.

@endrius
Skorzystaj sobie z Serializing and Deserializing JSON. Można pobrać z Nuget w Visual Studio.

0

@AdamWox: z tego co widzę to grzebałeś też w Baselinker. To jest odpowiedź do getProductsData.
Z Newtonsofta korzystam cały czas. Problem mam w tych miejscach:
"69327371": { i "69327372": {.
To są wartości dynamiczne. Teraz są takie, a mogę też odpytać się o np. 69327380, 69327400, 69327700. I wtedy się one podstawią. Z tym walczę

0

@endrius:
Próbowałeś słownika? Dictionary<TKey,TValue>

0

@endrius: Teraz rozumiem. Faktycznie dziwnie to trochę pokazują, szkoda, że nie robią z tego tablicy, ale kto wie co "podmiot liryczny miał na myśli" pisząc to API. Na tę chwilę mam tylko jedno rozwiązanie

public class Product
{
    public int product_id { get; set; }
    public string name { get; set; }
    public int tax_rate { get; set; }
    public decimal price_brutto { get; set; }
}
List<Product> products = new List<Product>();

dynamic obj = JObject.Parse(json);

foreach(JProperty product in obj["products"])
{
   var p = JsonConvert.DeserializeObject<Product>(product.Value.ToString());
   products.Add(p);
}

Może @konserwa kodem rozwinął by myśl. Nie bardzo wiem jak w takiej sytuacji zastosować Dictionary

0

Faktycznie nie dopatrzylem sie products nie sa tablicą.

0

Użyj słownika w taki sposób

 Dictionary<int, Product> products
0

Nie zadziała, products to obiekt, a nie array.

0
AdamWox napisał(a):

Nie zadziała, products to obiekt, a nie array.

Zadziała, sprawdź sobie jeżeli wątpisz :)

0

Sprawdziłem, nie zadziałało :-)

2
AdamWox napisał(a):

Sprawdziłem, nie zadziałało :-)

title

1 użytkowników online, w tym zalogowanych: 0, gości: 1