反序列化 Json 对象

本文关键字:对象 Json 反序列化 | 更新日期: 2023-09-27 18:35:59

嗨,我在取消 JSON 时遇到了一点问题。

这是我从 API 获得的 json

"{'"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; }
}

反序列化 Json 对象

下面是基于您发布的 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);

希望这有帮助。