【问题标题】:DeserializeObject only deserialize partlyDeserializeObject 仅部分反序列化
【发布时间】:2015-09-08 12:08:42
【问题描述】:

给定一个班级

public class ClassTest
{
    public string A { get; set; }
    public string B { get; set; }
    public string C { get; set; }
    public D_type D { get; set; }
}

我在打电话

JsonConvert.DeserializeObject<ClassTest>(json);

这适用于 D_type 类的 D 对象,它可以根据我的需要正确解析。但是,我不希望 JSON.net 反序列化 D,我想这样做

public class ClassTest
{
    public string A { get; set; }
    public string B { get; set; }
    public string C { get; set; }
    public string D_json { get; set; }
}

我想将 D 保留为 json 字符串,而不是反序列化它。

之后我将使用不同的反序列化器将其转换为其他内容。反序列化为一个对象D_type然后再序列化回json似乎没有意义,只能再次反序列化。

【问题讨论】:

    标签: c# json serialization json.net json-deserialization


    【解决方案1】:

    看来我能做到

    public class ClassTest
    {
        public string A { get; set; }
        public string B { get; set; }
        public string C { get; set; }
        public dynamic D { get; set; }
    }
    

    然后就用

    var obj = JsonConvert.DeserializeObject<ClassTest>(json);
    var json = obj.D.ToString()
    

    但我仍然很好奇是否有更好的方法,特别是返回真正的 JSONObject 或我可以添加属性的方法

    【讨论】:

    • 你可以制作D JObject,但我不确定这是否有帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多