使用C#中的变量字段反序列化Json对象?

时间:2017-09-01 10:29:04

标签: c# sql json visual-studio

我正在向一个API发出请求,该API将一堆对象的信息作为JSON字符串返回给我,类似于:(手写以便忽略可能的拼写错误)

{{
    "count": 2,
    "object": [{
        "name": "object 1",
        "fields": {
            "Attribute1": 2,
            "Attribute2": "string",
            (...)}
        "links": [{
            "rel": "SomeString",
            "url": "http://UrlString"
        },
        {
            ...
        }]
    }],
    [{
    "name": "object 2",
    "fields": {
        "Attribute1": 3,
        "Attribute4": 5,
        "Attribute6": "foo",
        (...)

我通过在Visual Studio中使用“插入JSON作为类”来将其转换为类,但由于不同的对象具有不同的字段(API在Null时不会返回值但是我没有所有可能字段的完整列表),该类已经是135行,并且具有非常基本的请求。

此外,我担心当我碰巧得到一个具有未在类中指定的字段的结果时会发生什么。据我所知,它可能会导致异常,或者只是忽略未明确指定的所有内容。

有没有办法处理这些对象(我试图将它们保存在Azure SQL Server中)而不会丢失任何信息?

我正在考虑KeyValuePairs,但我不认为这将适用于var(因为我不知道该值是字符串还是整数)。写入SQL也很麻烦,因为每次“发现”新字段时都必须重新创建整个数据库,但由于Azure SQL Server具有JSON支持,因此这可能比听起来更容易。

我很高兴获得“name”字段,使其成为db中的一个字段,然后直接将“fields”和“links”字段存储为db中的JSON字符串,但我需要访问一些在计算过程中的字段,所以我必须将Response从Object转换回字符串。如果我班上没有任何一个领域,我再次担心我会失去一些东西。

抱歉这篇长文,希望我在这里看不到什么:)

0 个答案:

没有答案