在C# WebForm中反序列化动态JSON数组

4

您好,我正在API中生成一个JSON,想要在我的Web应用程序的C#代码中使用它,但是反序列化得不太好。

我的JSON有一个带有JSON数组的对象,数组内的元素是动态的,因此我无法创建一个固定类来包含这些项,因为我的JSON可以有N项。

{
    "MAINOBJET": [{
        "ITEM1": "23800",
        "ITEM2": "Dahl; Police",
        "ITEM3": "test@test.net"
    },
    {
        "ITEM1": "23802",
        "ITEM2": "Steve ; Police",
        "ITEM3": "test2@test.net"
    }]
}

那么我该如何将其反序列化为DataTable、列表或字典呢? 谢谢。

1
你是否做过谷歌搜索?https://dev59.com/hXM_5IYBdhLWcg3w1G6N - MethodMan
1个回答

5

在这里你可以做一些像下面这个例子的事情,这个例子应该能够让你开始入门。用您自己的JSON文本替换结构/示例。

假设我的JSON脚本是这样的:

{
    "some_number": 253.541, 
    "date_time": "2012-26-12T11:53:09Z", 
    "serial_number": "SN8675309"
    "more_data": {
        "field1": 1.0
        "field2": "hello JSON Deserializer" 
    }
}

将你的JSON文本赋值给一个变量,并将其传递到以下的C#代码中。
using System.Web.Script.Serialization;

var jsonSerialization = new JavaScriptSerializer();
var dictObj = jsonSerialization.Deserialize<Dictionary<string,dynamic>>(jsonText);
Console.WriteLine(dictObj["some_number"]); //outputs 253.541
Console.WriteLine(dictObj["more_data"]["field2"]); //outputs hello JSON Deserializer

太棒了,我很高兴能够伸出援手帮助你。 - MethodMan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接