Tôi đang sử dụng JSON.net (có thể là v3.5ish? Từ tháng 10 năm 2010). và tôi đang cố gắng để deserialize một số json thành một liệt kê:phân tích cú pháp một liệt kê trong JSON.net
GeometryType: "esriGeometryPolygon"
tôi có liệt kê này:
/// <summary>
/// The geometry type.
/// </summary>
[DataContract]
public enum GeometryType
{
/// <summary>
/// Refers to geometry type Envelope
/// </summary>
[EnumMember(Value = "esriGeometryEnvelope")]
Envelope,
/// <summary>
/// Refers to geometry type MultiPoint
/// </summary>
[EnumMember(Value = "esriGeometryMultipoint")]
MultiPoint,
/// <summary>
/// Refers to geometry type MapPoint
/// </summary>
[EnumMember(Value = "esriGeometryPoint")]
Point,
/// <summary>
/// Refers to geometry type Polygon
/// </summary>
[EnumMember(Value = "esriGeometryPolygon")]
Polygon,
/// <summary>
/// Refers to geometry type Polyline
/// </summary>
[EnumMember(Value = "esriGeometryPolyline")]
Polyline
}
nhưng nó ném một lỗi nói rằng "Lỗi chuyển đổi giá trị" esriGeometryPolygon "gõ '... GeometryType'.
gì am i thiếu ở đây?
là nó vì nó là một phiên bản cũ (tôi đang sử dụng các mon otouch port: https://github.com/chrisntr/Newtonsoft.Json chưa được cập nhật trong một năm)? hoặc tôi có được datacontract của tôi sai?
EDIT: tôi đã chuyển JSON.NET mới nhất sang MT và tôi vẫn gặp lỗi chính xác.
Bất kỳ sự khác biệt nào nếu bạn đổi tên các giá trị Enum của mình trong C# để khớp chính xác với JSON? (Thay vì cố gắng sử dụng thuộc tính EnumMember) – jonathanpeppers
Jonathan, có vẻ như, vâng. –