JSON嵌套分类,父引用

时间:2011-08-31 14:53:19

标签: c# json json.net

我正在尝试将一些JSON反序列化为完美运行的对象..几乎......

我正在使用C#中的NewtonSoft.Json库

我有一系列嵌套类。

例如:

class car (string prop, string prop2}

在汽车类中一个嵌套的类轮

class wheel {string prop, car Parent}

现在我想获得从wheel类到car(Parent)类的引用 DeserializeObject运行良好,反序列化所有对象和嵌套对象

Car c = JsonConvert.DeserializeObject<Car>(jsonString);

但似乎无法获得父类的引用:(?

3 个答案:

答案 0 :(得分:1)

固定!

{   
    "$id":"1",
    "id":"car1",
    "name":"test",
    "description":"nice car",
    "wheel":[
        {
            "car":{"$ref":"1"},
            "name":"section",
            "description":"nice car"
        }
    ]
}

刚刚在JSON中添加了$ref

答案 1 :(得分:0)

而不是序列化和反序列化Car对象。 在您的场景中,您实际上可以序列化和反序列化Wheel对象。这样做,您将获得汽车和车轮的信息。

尝试将Json反序列化为Wheel对象。

答案 2 :(得分:0)

您可以在两端(客户端/服务器)设置此属性,Json.net应在反序列化期间将树链接在一起:

JsonSerializerSettings settings = new JsonSerializerSettings {
    PreserveReferencesHandling = PreserveReferencesHandling.All
};

您可以将这些设置传递给JsonConvert.SerializeObject的每次调用,也可以使用以下方式全局设置:

GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.PreserveReferencesHandling = PreserveReferencesHandling.All;