C#在代码背后反序列化json数组

本文关键字:json 数组 反序列化 背后 代码 | 更新日期: 2023-09-27 17:57:35

我有一个json数组,如下所示:

{"division_ids":"['"2'",'"3'",'"4'"]","particular_settings":"{'"sel_taxonomy'":'"'",'"particular_amount'":'"'",'"exclude_group'":null,'"discount_group_id'":'"-Select Group-'",'"discount_amount'":'"'",'"from_date'":'"'",'"to_date'":'"'"}"}

如何将其反序列化为两个数组,一个数组具有"division_ids",另一个数组为"特定设置"

C#在代码背后反序列化json数组

Json.net库允许您反序列化对象。
dynamic json = JObject.Parse("your json string");
dynamic divisionIds = json.division_ids;
dynamic particularSettings = json.particular_settings;
Console.WriteLine(divisionIds[0]); // Output : 2

你可以试试这个:

var jObject = JsonConvert.DeserializeObject<JObject>(yourJson);
var divList = jObject["division_ids"].ToObject<List<string>>();
var particularSettingList = jObject["particular_settings"].ToObject<List<string>>();

您可以使用jQuery和$.parseJSON。注意,我必须对json进行两次更改才能实现这一点:"['"2'",'"3'",'"4'"]"变成['"2'",'"3'",'"4'"]并删除第二个数组周围的双引号,"particular_settings":"{'"变成"particular_settings":{'"(也删除相应的结束引号)。

<script>
    function parseJson() {
       var myjson = '{"division_ids":['"2'",'"3'",'"4'"],"particular_settings":{'"sel_taxonomy'":'"test",'"particular_amount'":'"'",'"exclude_group'":null,'"discount_group_id'":'"-Select Group-'",'"discount_amount'":'"'",'"from_date'":'"'",'"to_date'":'"'"}}';
        var obj = $.parseJSON( myjson );
        alert(obj.division_ids);
        alert(obj.particular_settings.sel_taxonomy);            
    }
</script>