首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用JsonConvert序列化

用JsonConvert序列化
EN

Stack Overflow用户
提问于 2013-10-22 08:26:53
回答 2查看 429关注 0票数 0

我在Windows应用程序中有一些类:

代码语言:javascript
复制
[DataContract]
public class Function
{
    [DataMember(Name = "params")]
    public Params Parametrs { get; set; }
}

[DataContract]
public class Params
{
    [DataMember(Name = "params1")]
    public bool Params1 { get; set; }

    [DataMember(Name = "params2")]
    public string Params2 { get; set; }

    [DataMember(Name = "params3")]
    public MyClass Params3 { get; set; }
 }


public string GetRequestString(Params parametrs)
{
    Function func = new Function()
            {    
                Parametrs = parametrs
            };
    string json = JsonConvert.SerializeObject(func);
    return json;
}

Params params = new Params()
  {
        Params1 = true,
        Params2 = "MyString",
        Params3 = myClassObject,
  }

  var json = GetRequestString(params);

我的问题是Params1Params2等会有不同的类型。我不能在一节课上定义它。

我可以将一组参数、类型、键传递给函数并在JSON中序列化吗?

这与JsonConvert是可能的吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-22 09:31:28

由于c#是一种强类型语言,它要求在编译时定义属性的类型。但是,如果需要动态对象,则可以使用Object基类。但是,在使用之前,您可能需要将它们转换为相关类型。

代码语言:javascript
复制
[DataContract]
public class Params
{
    [DataMember(Name = "params1")]
    public object Params1 { get; set; }

    [DataMember(Name = "params2")]
    public object Params2 { get; set; }

    [DataMember(Name = "params3")]
    public object Params3 { get; set; }
}

Params param = new Params()
{
    Params1 = true,
    Params2 = "MyString",
    Params3 = new Object(),
};

var json = GetRequestString(param);
票数 2
EN

Stack Overflow用户

发布于 2013-10-22 09:26:32

jsonconvert可以在这里序列化它,尝试使用属性名来确定Name=的数据“例如:

代码语言:javascript
复制
[DataMember(Name = "Params1")]
 public bool Params1 { get; set; }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19512714

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档