相关疑难解决方法(0)

.NET - 枚举的jSON序列化为字符串

我有一个包含enum属性的类,在使用时序列化对象时JavaScriptSerializer,我的json结果包含枚举的整数值而不是它的string"name".有没有办法让枚举作为string我的json而不必创建自定义JavaScriptConverter?也许有一个属性,我可以装饰enum定义,或对象属性,?

举个例子:

enum Gender { Male, Female }

class Person
{
    int Age { get; set; }
    Gender Gender { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

期望的json结果:

{ "Age": 35, "Gender": "Male" }
Run Code Online (Sandbox Code Playgroud)

c# asp.net enums json javascriptserializer

1088
推荐指数
22
解决办法
42万
查看次数

使用JSON.NET将JSON数据反序列化为C#

我对使用C#和JSON数据相对较新,我正在寻求指导.我正在使用C#3.0,.NET3.5SP1和JSON.NET 3.5r6.

我有一个定义的C#类,我需要从JSON结构填充.但是,并非从Web服务检索的条目的每个JSON结构都包含在C#类中定义的所有可能的属性.

我一直在做看似错误的,艰难的方法,只是从JObject中逐个挑选每个值,并将字符串转换为所需的类属性.

JsonSerializer serializer = new JsonSerializer();
var o = (JObject)serializer.Deserialize(myjsondata);

MyAccount.EmployeeID = (string)o["employeeid"][0];
Run Code Online (Sandbox Code Playgroud)

将JSON结构反序列化为C#类并处理来自JSON源的可能缺失数据的最佳方法是什么?

我的课程定义为:

  public class MyAccount
  {

    [JsonProperty(PropertyName = "username")]
    public string UserID { get; set; }

    [JsonProperty(PropertyName = "givenname")]
    public string GivenName { get; set; }

    [JsonProperty(PropertyName = "sn")]
    public string Surname { get; set; }

    [JsonProperty(PropertyName = "passwordexpired")]
    public DateTime PasswordExpire { get; set; }

    [JsonProperty(PropertyName = "primaryaffiliation")]
    public string PrimaryAffiliation { get; set; }

    [JsonProperty(PropertyName = "affiliation")]
    public string[] Affiliation { get; …
Run Code Online (Sandbox Code Playgroud)

c# json json.net deserialization

143
推荐指数
4
解决办法
34万
查看次数