亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

json反序列化返回null

json反序列化返回null

C#
元芳怎么了 2022-07-10 10:28:21
我將帶有 ajax formdata 的 JSON 對象傳遞給 Controller。我嘗試將其反序列化為對象,但它始終返回 null。我只能將其轉換為動態,但不能將動態轉換為 Category 類。public class CategoryVM{    public Category category { get; set; }    public CategoryImage categoryImage { get; set; }    public CategoryVM()    {        category = new Category();         categoryImage = new CategoryImage();     }}類別類public class Category{    public string Kategori { get; set; }    public string Kodu { get; set; }    public bool State { get; set; }}JSON 值:{    "cat": {        "Category": {            "Kategori": "xxx",            "Kodu": "yyy",            "State": "true"        }    }}控制器:[HttpPost]public ActionResult AddCat(string cat){     dynamic json = Newtonsoft.Json.JsonConvert.DeserializeObject(cat);     CategoryVM c = JsonConvert.DeserializeObject<CategoryVM >(JsonConvert.SerializeObject(json)); //converts null here     return View();}我也嘗試了 JsonConvert,但對我不起作用:CategoryVM c = JsonConvert.DeserializeObject<CategoryVM>(JsonConvert.SerializeObject(json));
查看完整描述

2 回答

?
千萬里不及你

TA貢獻1784條經驗 獲得超9個贊

您有一個額外的嵌套級別,{"cat": { /* CategoryVM contents */ }}它沒有反映在您的數據模型中。解決此問題的最簡單方法是反序列化為具有public CategoryVM cat屬性的包裝對象,該屬性可以是匿名類型對象

var c = JsonConvert.DeserializeAnonymousType(cat, new { cat = default(CategoryVM) })
    .cat.category;

演示小提琴在這里。


查看完整回答
反對 回復 2022-07-10
?
呼如林

TA貢獻1798條經驗 獲得超3個贊

你可以這樣做,那么你就不需要CategoryVM

var obj = JsonConvert.DeserializeObject<JObject>(json);var category = JsonConvert.DeserializeObject<Category>(obj.First.First["Category"].ToString());


查看完整回答
反對 回復 2022-07-10
  • 2 回答
  • 0 關注
  • 154 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號