C# Json反序列化-获取当前子元素的原始Json
我正在与一个返回结果集的API集成。这个结果集周围有一个包装器。包装器还有一些其他信息以及项目列表。我正在使用C# Json反序列化-获取当前子元素的原始Json,c#,json,serialization,json.net,deserialization,C#,Json,Serialization,Json.net,Deserialization,我正在与一个返回结果集的API集成。这个结果集周围有一个包装器。包装器还有一些其他信息以及项目列表。我正在使用[JsonProperty(“”)注释成功地将Json映射到一个类。我要做的是在我的类中为每个子元素设置一个属性,以保存该项的原始json。我似乎无法让它工作。它总是返回null public class Wrapper { [JsonProperty("updated")] public DateTimeOffset Updated { get; set; }
[JsonProperty(“”)
注释成功地将Json映射到一个类。我要做的是在我的类中为每个子元素设置一个属性,以保存该项的原始json。我似乎无法让它工作。它总是返回null
public class Wrapper
{
[JsonProperty("updated")]
public DateTimeOffset Updated { get; set; }
[JsonProperty("data")]
public List<ChildItem> Items { get; set; }
}
public class ChildItem
{
[JsonProperty("id")]
public string ItemId { get; set; }
... a bunch of other properties
[JsonProperty("What do i put here?")]
public string RawJson { get; set; }
}
公共类包装器
{
[JsonProperty(“更新”)]
公共DateTimeOffset已更新{get;set;}
[JsonProperty(“数据”)]
公共列表项{get;set;}
}
公共类子项
{
[JsonProperty(“id”)]
公共字符串ItemId{get;set;}
…一堆其他的财产
[JsonProperty(“我在这里放什么?”)]
公共字符串RawJson{get;set;}
}
我尝试将属性类型从
string
切换到JRaw
,但仍然没有成功。我不是在寻找整个Json响应字符串,只是寻找当前项的原始Json。您想要完整子对象的原始Json吗?尝试将[JsonProperty(“data”)]公共列表RawItems{get;set;}
放入包装器类中。您可以稍后通过wrapper.Items.Zip(wrapper.RawItems,(item,raw)=>{…})
@ckuri组合这两个属性,因为我已经在使用json属性“data”映射到我的wrapper.Items
属性。但是,如果我像您所说的那样将“数据”映射到RawItems属性,我可以循环遍历这些结果,并使用反序列化对象(rawjson)
构建我的包装器.Items
属性。这是一个潜在的解决方案。你是对的,我不知道NewtonSoft不允许你将同一个JSON属性映射到多个模型属性。