Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Json反序列化-获取当前子元素的原始Json_C#_Json_Serialization_Json.net_Deserialization - Fatal编程技术网

C# Json反序列化-获取当前子元素的原始Json

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; }

我正在与一个返回结果集的API集成。这个结果集周围有一个包装器。包装器还有一些其他信息以及项目列表。我正在使用
[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属性映射到多个模型属性。