c# - 如何将json反序列化为字典
问题描述
我有一个看起来与此类似的课程
public class Demo
{
[JsonProperty("variables")]
[JsonExtensionData]
IDictionary<string, object> Variables { get; set; } = new Dictionary<string, object>();
}
我的示例 json 看起来像这样
{
"variables" : [
{
"a" : "1"
}
]
}
当我发布我的数据时,Demo.Variables 看起来像这样
{[variables, [
{
"a": "1"
}
]]}
我想要的是:
[{
"a": "1"
}]
解决方案
您可能需要稍微不同地看待您的数据。
这个 JSON:
{
"variables" : [
{
"a" : "1"
}
]
}
可以看作是这样的字典集合:
public class Demo
{
public IEnumerable<Dictionary<string, string>> Variables { get; set; }
}
然后得到你要求的输出:
[{
"a": "1"
}]
像这样序列化/反序列化:
public void Serialization()
{
var dto = JsonConvert.DeserializeObject<Demo>(json);
var postData = JsonConvert.SerializeObject(dto.Variables);
}
postData
然后将反序列化回IEnumerable<Dictionary<string, string>>
JSON 所指示的状态[{"a":"1"}]
推荐阅读
- c# - 如何将 SQLite 数据库“连接”到 gridview?
- python - Python 使用 Jar 文件
- java - 如何获取给定列表中的联系人
- swift - Swift 方法链,如何重用类和方法?
- javascript - 如何通过 javascript 获取可用的 RAM 内存
- amazon-web-services - 如何知道有多少用户使用 aws cognito 登录
- at-command - 如何在两个 ESP8266 WiFi 模块之间发送数据
- asp.net-core-mvc - 在 ASP.NET CORE 3.1 MVC 中实现“记住我”
- redis - 像老板一样使用缓存数据
- javascript - 仅使用 javascript 进行分页