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

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

將復雜的 Json 轉換為對象

將復雜的 Json 轉換為對象

C#
DIEA 2023-08-13 15:57:54
我有以下 JSON 響應:{"data": [{  "ac_conditions": "[{\"ac_condition_group_id\":156570,\"ac_condition_group_name\":\"\u0413\u0440\u0443\u043f\u043f\u0430 \u0443\u0441\u043b\u043e\u0432\u0438\u0439  1\",\"id\":311790,\"ac_parameter\":\"utm_source\",\"ac_operator\":\"=\",\"value\":\"google_rem\",\"is_negative\":false},{\"ac_condition_group_id\":156570,\"ac_condition_group_name\":\"\u0413\u0440\u0443\u043f\u043f\u0430 \u0443\u0441\u043b\u043e\u0432\u0438\u0439  1\",\"id\":275094,\"ac_parameter\":\"utm_source\",\"ac_operator\":\"=\",\"value\":\"yandex_retargeting\",\"is_negative\":false}]",  "is_dt_enabled": true,  "ac_id": 162866,  "site_blocks": "[{\"id\":324164,\"name\":\"\u041d\u043e\u043c\u0435\u0440 1 \u043d\u0430 \u0441\u0430\u0439\u0442\u0435\",\"phone_type\":\"virtual\",\"numb\":\"74950238629\",\"forward_numb\":null,\"is_dt_enabled\":true,\"dt_number_pool_numbers\":[\"74951828912\",\"74950324045\",\"74950324046\",\"74950324043\",\"74950324037\",\"74951828907\",\"74950324048\",\"74950324049\",\"74951523589\",\"74953239984\"]}]"}],"success": true}我創建了一個類來反現實化它    public class Condition     {        public bool success;        public List<Data> data;        public class Data         {            public string ac_conditions;                            public int ac_id;             public bool is_dt_enabled;            public string site_blocks;        };    }運行良好。我需要的是取消實現元素 ac_conditions 和 site_blocks。我創建了一個新類,但出現異常(System.String 無法轉換為 List)       我在代碼中使用這一行來反序列化 JSON 響應JsonConvert.DeserializeObject<Models.Condition>(string_Condition);
查看完整描述

1 回答

?
Smart貓小萌

TA貢獻1911條經驗 獲得超7個贊

您的 JSON 屬性“site_blocks”是一個包含序列化 JSON 數據的字符串值。因此,您需要第二步來解包/反序列化數據。如果您可以更改生成響應的方式,您可以在那里修復它(在 site_blocks 中返回 JSON 并且不返回字符串)


例如(使用 Json.net 和第二次解析運行的結果存儲在 site_blocks_parsed 中)


public class Condition 

{

    public bool success;

    public List<Data> data;

    public class Data 

    {

        public string ac_conditions;                

        public int ac_id; 

        public bool is_dt_enabled;

        public string site_blocks;

        public List<SiteBlock> site_blocks_parsed;

        public class ConditionCamp

        {

            public int ac_condition_group_id;

            public string ac_condition_group_name;

            public int id;

            public string ac_parameter;

            public string ac_operator;

            public string value;

            public bool is_negative;

        }

        public class SiteBlock

        {

            public int id;

            public string name;

            public string phone_type;

            public string numb; 

            public string forward_numb;

            public bool is_dt_enabled;

            public string dt_number_pool_numbers;

        }

    };

}


...


var condition = JsonConvert.DeserializeObject<Condition>(jsonString);

foreach (var data in condition.data) {

  data.site_blocks_parsed = JsonConvert.DeserializeObject<List<SiteBlock>>(data.site_blocks);

}


查看完整回答
反對 回復 2023-08-13
  • 1 回答
  • 0 關注
  • 122 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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