десериализовать вложенную строку json - PullRequest
3 голосов
/ 30 июня 2011

У меня есть эта строка json

{
'studentinfo':
{
'name':'abc',
'age':41,
'gender':male,
 address:
{
'street':'asd',
'city':'ipd',
'state':'mah'
},
'subject':[
{
'name':'Arts','marks':40,'grade':'a'
},
{
'name':'Science','marks':40,'grade':'a'
},
{
'name':'Commerce','marks':40,'grade':'a'
}
]
}
}

class root
{
public list<studentinfo> studentinfo;
public list<address> address;
public list<subject> subject;
}

class studentinfo
{}

class address
{}

class subject
{}

JSONSerializer.ConvertFromJSON<root>(JSONData)

Я хочу десериализовать вышеуказанную строку json, но получаю нулевые значения?Есть идеи, где это неверно?

  public static T ConvertFromJSON<T>(String json)
    {
        JavaScriptSerializer serializer = new JavaScriptSerializer();
        return serializer.Deserialize<T>(json);
    }

json

1 Ответ

5 голосов
/ 30 июня 2011

Попробуйте изменить классы так:

class root
{
    public root()
    {
    }

    public studentinfo studentinfo { get; set; }
}

class studentinfo
{
    public studentinfo()
    {
        subject = new List<subject>();
    }
    public string name { get; set; }
    public int age { get; set; }
    public string gender { get; set; }

    public address address;
    public List<subject> subject;
}

class address
{
    public string street { get; set; }
    public string city { get; set; }
    public string state { get; set; }
}

class subject
{
    public string name { get; set; }
    public int marks { get; set; }
    public string grade { get; set; }
}

и ошибка с вашим JSON

'gender':male,

должно быть

 'gender': 'male',
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...