我有一个返回的 JSON
{
"access_token": "",
//....
}
我想将其映射到 AccessToken
而不是 access_token
。
使用JSON.NET,可以写
[JsonProperty("access_token")]
public string AccessToken{ get; set; }
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; }
}
用法:
var json = "{\"user_name\":\"John Doe\",\"access_token\":\"ABC123\"}";
var data = SerializationHelper.DeserializeJsonString<DataObject>(json);
关于asp.net - 等同于 .NET 中的 JSON.NET JsonProperty,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32808931/