2014-05-02 3 views
0

Я не могу понять, почему моя модель не будет заполнена данными из моей строки JSON. Вот модель:Попытка десериализации JSON в объект с использованием JSON.NET

public class MidasReturnModel 
{ 

    public string status { get; set; } 

    public string msg { get; set; } 

} 

А вот мой C# код:

MidasReturnModel rtn = JsonConvert.DeserializeObject<MidasReturnModel>(post_responseTemp); 

А вот строка JSON post_responseTemp, как она будет передана в этой функции:

 "{\"MidasReturnModel\": {\"status\":\"warn\", \"msg\":\"Customer does not have contract for this season\"}}" 

Может кто-нибудь видит, что я делаю неправильно? «rtn» - это модель с как статусом, так и msg «null», когда я запускаю код.

ответ

1

Глядя на ваш json, вы определяете MidasReturnModel.

Когда это становится десериализованным, он ищет свойство, называемое MidasReturnModel на вашем классе.

Я хотел бы попробовать свой JSON как:

{ 
    "status": "warn", 
    "msg": "Customer does not have contract for this season" 
} 

Если вы желаете, чтобы сохранить ваш JSON же, то она должна была бы быть случай упаковки вашего ViewModel в другом классе.

public class MidasWrapper 
{ 
    public MidasReturnModel MidasReturnModel { get; set; } 
} 

public class MidasReturnModel 
{ 

    public string status { get; set; } 

    public string msg { get; set; } 

} 

var rtn = JsonConvert.DeserializeObject<MidasWrapper>(post_responseTemp); 
+0

Это было! Большое спасибо! – dmikester1

Смежные вопросы