【问题标题】:Equivalent for JSON.NET JsonProperty in .NET等效于 .NET 中的 JSON.NET JsonProperty
【发布时间】:2015-09-27 14:24:26
【问题描述】:

我有一个返回的 JSON

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

我想将其映射到 AccessToken 而不是 access_token

使用 JSON.NET,可以编写

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

在 ASP.NET 框架中是否有等价物?我不希望这里有 JSON.NET 依赖。

【问题讨论】:

标签: asp.net


【解决方案1】:

您需要使用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);

【讨论】:

    猜你喜欢
    • 2021-06-08
    • 2020-02-16
    • 2010-11-23
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    • 2012-11-28
    • 2018-03-30
    • 2010-11-20
    相关资源
    最近更新 更多