asp.net - 等同于 .NET 中的 JSON.NET JsonProperty

标签 asp.net

我有一个返回的 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/

相关文章:

c# - 使用部分类进行验证?

c# - ASP.net 使用 javascript 在内容页面上获取 RadioButtonList 值

c# - RSS C# 获取汇率

asp.net - 从 ASP.NET Core 连接到 SQL Server 的最佳实践?

c# - 无法加载文件或程序集“Microsoft.CodeDom.Providers.DotNetCompilerPlatform 或其依赖项之一。访问被拒绝

asp.net - 从 excel ASP.Net 获取工作表名称

c# - 如何在 Application_EndRequest 中获取 RouteData

ASP.NET 用户控件继承用户控件生成空引用

asp.net - 从 EF 6 Code First 迁移和多个配置生成完整的 SQL 脚本

c# - 在我的 asp.net 网站中实现 DotNetOpenid