【发布时间】:2018-06-29 19:53:59
【问题描述】:
我有以下格式的 JSON(不是真实数据),我正在尝试将其转换为 C# 等效类。如果您注意到 type_1、type_2 这些可能是任意数字。这很难收集(有点匿名)。如果我从 JSON 中删除所有 type_1、type_2 ...,则很容易将其转换为类。由于它本质上是动态的,因此很难。
我已经尝试http://json2csharp.com/ 来获取课程。问题是,它将“类型”转换为成员,这是不正确的,它应该是动态集合或数组。
这个略有不同的问题
这个问题有 2 个额外的问题,第一个“type_1”元素是动态的,第二个是这些元素不在列表或数组中。
我无法控制这种 JSON 格式,这让人非常沮丧。
{
"type_1": {
"@type": "blob",
"content_type": "image/jpeg",
"digest": "sha1-rCY0Tk8qRqaLfiQXdxYeX9Y+WMI="
},
"type_2": {
"@type": "blob",
"content_type": "image/jpeg",
"digest": "sha1-rCY0Tk8qRqaLfiQXdxYeX9Y+WMI="
},
"type_3": {
"@type": "blob",
"content_type": "image/jpeg",
"digest": "sha1-rCY0Tk8qRqaLfiQXdxYeX9Y+WMI=",
},
"type_4": {
"@type": "blob",
"content_type": "image/jpeg",
"digest": "sha1-rCY0Tk8qRqaLfiQXdxYeX9Y+WMI=",
},
"type_5": {
"@type": "blob",
"content_type": "image/jpeg",
"digest": "sha1-rCY0Tk8qRqaLfiQXdxYeX9Y+WMI=",
},
"References": {
"blob_1": {
"content_type": "image/jpeg",
"digest": "sha1-rCY0Tk8qRqaLfiQXdxYeX9Y+WMI=",
"revpos": 1,
"stub": true
},
"blob_2": {
"content_type": "image/jpeg",
"digest": "sha1-rCY0Tk8qRqaLfiQXdxYeX9Y+WMI=",
"revpos": 1,
"stub": true
}
},
"someproperty1": "somevalue1",
"someproperty2": "somevalue2",
"someproperty3": "somevalue3",
"someproperty4": "somevalue4",
"someproperty5": "somevalue5"
}
我在想类似的事情
Filecollection 只不过是那个匿名集合;不走运;(
public partial class Doc
{
[JsonProperty("references")]
public Dictionary<String, Attachments> Attachments { get; set; }
public List<Dictionary<String, Details>> FileCollections { get; set; }
[JsonProperty("someproperty")]
public String someproperty { get; set; }
[JsonProperty("someproperty2")]
public String someproperty2 { get; set; }
[JsonProperty("someproperty3")]
public String someproperty3 { get; set; }
}
【问题讨论】:
-
您的 JSON 不包含列表,转换器没有提取该列表是正常的。
-
这不是真的.. 这个问题有 2 个额外的问题首先“type_1”元素是动态的,不在列表中
-
type_1和type_2是否有共同的模式?如,名称是否始终相同(类型)并后跟下划线(_),然后是数字增量? -
@Svek 不是真的 .. 在内部这些是文件名。可以是任何种类。
-
嗯....你知道文件名吗?更具体地说,它们是否在某个地方的数组中可用?