我有一个返回的JSON
{
"access_token": "",
//....
}
Run Code Online (Sandbox Code Playgroud)
我想把它映射到AccessToken而不是access_token.
使用JSON.NET,可以编写
[JsonProperty("access_token")]
public string AccessToken{ get; set; }
Run Code Online (Sandbox Code Playgroud)
ASP.NET框架中是否存在等价物?我不想要JSON.NET依赖.
您需要使用DataContractJsonSerializer和DataContract,DataMember如下:
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; }
}
Run Code Online (Sandbox Code Playgroud)
用法:
var json = "{\"user_name\":\"John Doe\",\"access_token\":\"ABC123\"}";
var data = SerializationHelper.DeserializeJsonString<DataObject>(json);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
169 次 |
| 最近记录: |