.Net:通过反序列化创建动态JSON



我需要生成一个低于结构的JSON

"data": {
"id": "1",
"week04282020": "0",
"week05052020": "624,746",
"week05122020": "0",
"week05192020": "0",
"week05262020": "0",
"may-20": "624,746",
"week06022020": "0",
"week06092020": "0",
"week06162020": "0",
"week06232020": "0",
"week06302020": "0",
"jun-20": "0",
"quarter22020": "624,746"
.....
} 

周等的格式为weekMMDDYYYY等等。这些日期正在按预期更改。所以,对我来说,其他选择是在下面这样的类中使用ExpandoObject-

class MyData
{
public dynamic ExpandoObject Data = new ExpandoObject();
}
var data = MyData();
data.Data.id = 1;
data.Data.week04282020 = 0;
data.Data.week05052020 = 624746;
...
JsonConvert.SerializeObject(data);

有没有更好的方法可以在不使用动态/ExpandoObject的情况下实现这一点?请注意,稍后我可能不得不将此代码移植到Java,因为Java不支持动态或等效的ExpandoObject。

在不使用类序列化的情况下生成此JSON的任何其他方式(而不是字符串串联/操作(也可以。

感谢

您可以为Data属性使用Dictionary<string, string>,如下所示:

class MyData
{
public Dictionary<string, string> Data { get; set; } = new Dictionary<string, string>();
}

Fiddle:https://dotnetfiddle.net/RWW0Bk

请注意,Java有一个HashMap<K,V>类,它大致相当于Dictionary<K,V>

最新更新