2015-09-27 22 views
2

等效於JSON.NET JsonProperty我有一個返回在.NET

{ 
    "access_token": "", 
    //.... 
} 

我想它映射到AccessToken而非access_token一個JSON。

使用JSON.NET,一個可以寫

[JsonProperty("access_token")] 
public string AccessToken{ get; set; } 

是否有ASP.NET框架等效?我不希望JSON.NET依賴關係在這裏。

+1

這可能是你所期待的。 JavaScriptConvert答案將允許您將JSON放到您自己的自定義對象中。 [第二個答案由保羅亞歷山大](http://stackoverflow.com/questions/1100191/javascriptserializer-deserialize-how-to-change-field-names) – Aaron

+0

@Aaron:謝謝。 – naveen

回答

5

您需要使用DataContractJsonSerializer和DataContract,數據成員如下:

public static class SerializationHelper 
{ 
    /// <summary> Deserializes Json string of type T. </summary> 
    public static T DeserializeJsonString<T>(string jsonString) 
    { 
     T tempObject = default(T); 

     using (var memoryStream = new MemoryStream(Encoding.Unicode.GetBytes(jsonString))) 
     { 
      var serializer = new DataContractJsonSerializer(typeof(T)); 
      tempObject = (T) serializer.ReadObject(memoryStream); 
     } 

     return tempObject; 
    } 
} 


[DataContract] 
public class DataObject 
{ 
    [DataMember(Name = "user_name")] 
    public string UserName { get; set; } 

    [DataMember(Name = "access_token")] 
    public string AccessToken { get; set; } 
} 

用法:

var json = "{\"user_name\":\"John Doe\",\"access_token\":\"ABC123\"}"; 
var data = SerializationHelper.DeserializeJsonString<DataObject>(json);