对于Geckoard,我想生成一个JSON,如下所示:
{
"item": [
{
"value": "274057"
},
[
"38594",
"39957",
"35316",
"35913",
"36668",
"45660",
"41949"
]
]
}
我正在与数组前丢失的属性作斗争。
C#类必须是什么样子才能序列化到那个?
这些对于动态语言(如javaScript)很有效,但在C#中做同样的事情并不容易。我能在这里看到的最好的东西——整个JSON将映射到以下类结构:
public class RootItem
{
public IEnumerable<object> Item {get;set;}
}
public class ValueItem
{
public string Value {get;set;}
}
基本上,接下来您将需要一个自定义的序列化程序规则或参数绑定器(取决于您在哪里使用它),它将使用此JSON并手动用ValueItem
或IEnumerable<string>
的集合填充RootItem.Item
集合。
将json粘贴到json2csharp,并生成一个合适的类定义,用于在那里序列化json:
public class RootObject
{
public List<object> item { get; set; }
}
Json item
属性定义为一个包含混合数据类型(奇异对象和数组)的数组,在.NET中同时包含这两种类型的一种可能的数据类型是object
。