C# 将两个属性反序列化为一个.NET属性

C# 将两个属性反序列化为一个.NET属性,c#,json.net,deserialization,C#,Json.net,Deserialization,我有一个类似这样的json响应 { latitude: 30.4848, longitude: -70.5484 } 现在我这样做是为了用newtonsoft JSON.NET反序列化 JsonConvert.DeserializeObject<Test>(json); 我想将纬度和经度反序列化为地理坐标对象的经度和纬度属性 public class Test { public GeoCoordinate Location{ get; set; } } 这不完全是您所要

我有一个类似这样的json响应

{ latitude: 30.4848, longitude: -70.5484 }
现在我这样做是为了用newtonsoft JSON.NET反序列化

JsonConvert.DeserializeObject<Test>(json);
我想将纬度和经度反序列化为地理坐标对象的经度和纬度属性

public class Test
{
    public GeoCoordinate Location{ get; set; }
}

这不完全是您所要求的,但是您可以这样定义
位置

[JsonObject(MemberSerialization.OptIn)]
public class Test
{
    private GeoCoordindate _location;

    [JsonProperty(PropertyName = "longitude")]
    public double Longitude{ get; set; }

    [JsonProperty(PropertyName = "latitude")]
    public double Latitude { get; set; }

    public GeoCoordinate Location
    {
        get
        {
            if (_location == null)
                _location = new GeoCoordinate(Latitude, Longitude);

            return _location;
        }
    }
}

这不完全是您所要求的,但是您可以这样定义
位置

[JsonObject(MemberSerialization.OptIn)]
public class Test
{
    private GeoCoordindate _location;

    [JsonProperty(PropertyName = "longitude")]
    public double Longitude{ get; set; }

    [JsonProperty(PropertyName = "latitude")]
    public double Latitude { get; set; }

    public GeoCoordinate Location
    {
        get
        {
            if (_location == null)
                _location = new GeoCoordinate(Latitude, Longitude);

            return _location;
        }
    }
}

我添加了几行文字试图更好地解释我自己我添加了几行文字试图更好地解释我自己我喜欢@qntmfred suggestion+1。这个问题让我相信你在给一个简单的应用程序增加不必要的复杂性。你是对的,直到@qntmfred扩展它,我才理解这个建议。谢谢@qntmfred建议+1。这个问题让我相信你在给一个简单的应用程序增加不必要的复杂性。你是对的,直到@qntmfred扩展它,我才理解这个建议。谢谢