RestSharp JsonDeserializer with special characters in identifiers RestSharp JsonDeserializer with special characters in identifiers json json

RestSharp JsonDeserializer with special characters in identifiers


From looking at the RestSharp source it's possible to enable it to do data contract deserialization, this seems to require a change of the RestSharp source.

Search for //#define SIMPLE_JSON_DATACONTRACT in SimpleJson.cs

Then you'll need to create the data contracts as well (see "@attr" below):

[DataContract]public class SomeJson{    [DataMember(Name = "toptags")]    public Tags TopTags { get; set; }}[DataContract]public class Tags{    [DataMember(Name = "@attr")]    public Attr Attr { get; set; }}[DataContract]public class Attr{    [DataMember(Name = "artist")]    public string Artist { get; set; }    [DataMember(Name = "album")]    public string Album { get; set; }}

Didn't try it with RestSharp, but it works with this piece of code, RestSharp uses DataContractJsonSerializer, possibly you will have to set the

SimpleJson.CurrentJsonSerializerStrategy =                       SimpleJson.DataContractJsonSerializerStrategy

My test:

var json = "{ \"toptags\":{ \"@attr\":{ \"artist\":\"Whatever\", \"album\":\"Whatever\" }}}";var serializer = new  DataContractJsonSerializer(typeof(SomeJson));var result = (SomeJson)serializer.ReadObject(                               new MemoryStream(Encoding.ASCII.GetBytes(json)));