gpt4 book ai didi

c# - 在属性名称中使用点反序列化 JSON

转载 作者:太空狗 更新时间:2023-10-29 21:08:09 25 4
gpt4 key购买 nike

我正在尝试将属性名称中带有点的 JSON 反序列化为键值格式。我正在使用内置的 ASP.NET MVC 模型绑定(bind)。它似乎将点解释为对象表示法,而不仅仅是键值对象。有没有办法让它正确反序列化为忽略点的键值?这很重要,因为需要以这种格式再次输出数据。

Controller Action

[HttpPost]
public ActionResult SaveProgress(int id, ProgressVM data)
{
// ProgressVM Data property has an item with key "prop" and a null value, nothing else
}

查看模型

public class ProgressVM
{
public int ID { get; set; }
public Dictionary<string, string> Data { get; set; }
}

JSON 示例

{
"ID": 123,
"Data": {
"prop.0.name": "value",
"prop.0.id": "value",
"prop.1.name": "value",
"prop.2.name": "value",
"prop.3.name": "value"
}
}

最佳答案

我来这里是为了寻找一种将 json 字符串反序列化为模型的方法,虽然这里的问题已通过 MVC 框架解决,但它并没有解决我的问题。

给定一个json字符串

{
"Property.Something": "The value"
}

我发现使用 [JsonProperty] 属性我可以像这样将字符串反序列化到我的模型中:

public class JsonModel
{
[JsonProperty(PropertyName = "Property.Something")]
public string PropertySomething {get; set;}
}

关于c# - 在属性名称中使用点反序列化 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38689872/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com