2015-01-02 3 views
0

Привет, У меня есть небольшая проблема с десарализацией JSON.Deserializing объект Json

Это JSON, который я получаю от API

"{\"status\":\"ok\",\"categories\": 
[{\"id\":1,\"name\":\"Name\",\"number\":0,\"clientsCount\":32,\"fields\": 
[\"name\",\"surname\",\"tel\",\"post\",\"country\"],\"subcategories\":[{\"id\":2,\"name\":\"Got\",\"number\":1},{\"id\":13,\"name\":\"Hipoteka\",\"number\":2}, 
{\"id\":14,\"name\":\"Samochodowych\",\"number\":4}]}, 
{\"id\":2,\"name\":\"Name\",\"number\":1,\"clientsCount\":12,\"fields\": 
[\"name\",\"nazwisko\",\"tel\",\"car\",\"car_model\"],\"subcategories\":[]}]}" 

и это, как он выглядит в PHP

array(
       'id' => 1, 
       'name' => 'Name', 
       'number' => 0, 
       'clientsCount' => 32, 
       'fields' => array(
        'name', 
        'surname', 
        'tel', 
        'post', 
        'country' 
       ), 
       'subcategories' => array(
        array(
         'id' => 2, 
         'name' => 'Gotówkowy', 
         'number' => 1 
        ), 
        array(
         'id' => 13, 
         'name' => 'Hipoteka', 
         'number' => 2 
        ), 
        array(
         'id' => 14, 
         'name' => 'Samochodowych', 
         'number' => 4 
        ), 
       ), 
      ), 
      array(
       'id' => 2, 
       'name' => 'Name', 
       'number' => 1, 
       'clientsCount' => 12, 
       'fields' => array(
        'name', 
        'surname', 
        'tel', 
        'car', 
        'car_model' 
       ), 
       'subcategories' => array(), 
      ), 

Я не имею ни малейшего представления, как преобразовать его. Мне не нужны эти подкатегории полей JSON, но другие очень важны для меня.

Я приготовил некоторый класс, но я не знаю, как загрузить в этот класс массива «поля»

class Kategorie 
{ 
    public int id { get; set; } 
    public string name { get; set; } 
    public int number { get; set; } 
    public int clientsCount { get; set; } 
} 
+3

Вышеупомянутый массив больше похож на массив PHP. – haim770

+0

То, что размещено как образец «JSON», вовсе не JSON. Проверьте, не опубликовали ли вы правильный пример ИЛИ обновить сообщение, чтобы не упоминать JSON. –

+0

Извините, что я отправляю php-код. Я отредактировал свой вопрос и добавлю строку JSON, которую я получаю от API. – Icet

ответ

4

Вот пример на основе Json вы писали:

//Created MyObject to resemble the JSON object graph for easy deserialization 
class MyObject 
{ 
    public string Status { get; set; } 
    public Category[] Categories { get; set; } 
    //Similar to categories, You can create properties for fields, subcategories etc., as needed. 
} 
class Category 
{ 
    public int id { get; set; } 
    public string name { get; set; } 
    public int number { get; set; } 
    public int clientsCount { get; set; } 

} 

Десериализация Код: (Использование Newtonsoft.Json)

var myObject = JsonConvert.DeserializeObject<MyObject>(jsonString); 

Надеюсь, эта помощь.

+0

Спасибо. Это работает. Answer accept. – Icet

+0

Я предполагаю, что это использует библиотеку Newtonsoft? – Liath

+1

@Liath Да, я использую Newtonsoft JSON libray. Отредактировал свой ответ, чтобы указать на это. –