如何在不包括属性名称的情况下将匿名对象序列化为JSON

朱利安诺·尼斯·席尔瓦·奥利维拉

我有以下代码:

///<summary>
///In this case you can set any other valid attribute for the editable element. 
///For example, if the element is edittype:'text', we can set size, maxlength,
///etc. attributes. Refer to the valid attributes for the element
///</summary>
public object OtherOptions { get; set; }
public override string ToString()
{
   return this.ToJSON();
}

我需要从OtherOptions属性中获取匿名对象,并像从主对象中一样对匿名对象的每个属性进行序列化。

例如:

OtherOptions = new { A = "1", B = "2" }

如果我将其序列化,它将是(或类似这样的):

OtherOptions: {
A: "1",
B: "2"
}

是否可以在不显式删除的情况下将A和B设置在OtherOptions的相同级别上。

rad

好的,这很丑陋,我不建议您这样做,但是它确实可以满足您的要求。

本质上,它只创建您想要的属性的Dictionary,然后序列化该字典。

    static void Main(string[] args)
    {
        JavaScriptSerializer serializer = new JavaScriptSerializer();

        var obj = new {Prop1 = "val1", OtherOptions = new {A = "1", B = "2"}};

        IDictionary<string, object> result = new Dictionary<string, object>();
        foreach (var kv in GetProps(obj))
        {
            if (!kv.Key.Equals("OtherOptions"))
                result.Add(kv);
        }
        foreach (var kv in GetProps(obj.OtherOptions))
        {
            result.Add(kv);
        }
        var serialized = serializer.Serialize(result);
    }

    static IEnumerable<KeyValuePair<string, object>> GetProps(object obj)
    {
        var props = TypeDescriptor.GetProperties(obj);
        return
            props.Cast<PropertyDescriptor>()
                 .Select(prop => new KeyValuePair<string, object>(prop.Name, prop.GetValue(obj)));
    }

序列化为

{"Prop1":"val1","A":"1","B":"2"}

您可以在要忽略的字段上使用属性,然后在GetProps方法中检查该属性,如果存在则不返回。

同样,我不建议您这样做。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在不丢失其特定属性的情况下将子实例反序列化为父对象?

来自分类Dev

如何在不使用对象的情况下序列化为JSON

来自分类Dev

如何在没有模式信息的情况下将C#对象序列化为xml?

来自分类Dev

如何在不反转堆栈的情况下使用System.Text.Json将Stack <T>序列化为JSON?

来自分类Dev

如何在没有关联ID的情况下将关联序列化为JSON-API?

来自分类Dev

如何在没有父元素的情况下将列表序列化为XML

来自分类Dev

如何在没有父元素的情况下将列表序列化为XML

来自分类Dev

如何在对象结构未知的情况下反序列化JSON对象

来自分类Dev

如何将属性序列化为 json 对象?

来自分类Dev

在不使用属性的情况下将对象序列化为XML

来自分类Dev

如何在设置了@ExclusionPolicy(“ all”)的情况下将POST正文内容反序列化为Entity

来自分类Dev

在Jackson中没有根密钥的情况下将对象序列化为JSON

来自分类Dev

如何在不添加[JsonProperty]属性的情况下序列化JSON.NET中的静态属性

来自分类Dev

在响应中缺少属性名称的情况下反序列化JSON

来自分类Dev

通过属性名称以及JsonProperty将JSON反序列化为对象

来自分类Dev

如何在字符串值包装在同名对象中的情况下彻底反序列化JSON

来自分类Dev

如何在字符串值包装在同名对象中的情况下彻底反序列化JSON

来自分类Dev

将包含对象属性的poco序列化为Json

来自分类Dev

如何使用json.net将枚举序列化为其他属性名称

来自分类Dev

如何在不获得反序列化最新信息的情况下序列化对象的几个帧?

来自分类Dev

如何在没有任何数据损坏风险的情况下序列化对象?

来自分类Dev

如何在不使用序列化的情况下制作Java对象的深层副本?

来自分类Dev

如何在不丢失“连接”的情况下序列化Atom api对象

来自分类Dev

如何在不包括所有CSS的情况下@import,而仅包括@extends的CSS

来自分类Dev

Delphi-JSON对象-如何在不知道属性名称的情况下迭代所有属性?

来自分类Dev

序列化为JSON时如何将属性分组为子对象

来自分类Dev

如何将JSON反序列化为具有HashMap属性的对象?

来自分类Dev

序列化为JSON时如何将属性分组为子对象

来自分类Dev

如何仅将更改的表单属性序列化为JSON

Related 相关文章

  1. 1

    如何在不丢失其特定属性的情况下将子实例反序列化为父对象?

  2. 2

    如何在不使用对象的情况下序列化为JSON

  3. 3

    如何在没有模式信息的情况下将C#对象序列化为xml?

  4. 4

    如何在不反转堆栈的情况下使用System.Text.Json将Stack <T>序列化为JSON?

  5. 5

    如何在没有关联ID的情况下将关联序列化为JSON-API?

  6. 6

    如何在没有父元素的情况下将列表序列化为XML

  7. 7

    如何在没有父元素的情况下将列表序列化为XML

  8. 8

    如何在对象结构未知的情况下反序列化JSON对象

  9. 9

    如何将属性序列化为 json 对象?

  10. 10

    在不使用属性的情况下将对象序列化为XML

  11. 11

    如何在设置了@ExclusionPolicy(“ all”)的情况下将POST正文内容反序列化为Entity

  12. 12

    在Jackson中没有根密钥的情况下将对象序列化为JSON

  13. 13

    如何在不添加[JsonProperty]属性的情况下序列化JSON.NET中的静态属性

  14. 14

    在响应中缺少属性名称的情况下反序列化JSON

  15. 15

    通过属性名称以及JsonProperty将JSON反序列化为对象

  16. 16

    如何在字符串值包装在同名对象中的情况下彻底反序列化JSON

  17. 17

    如何在字符串值包装在同名对象中的情况下彻底反序列化JSON

  18. 18

    将包含对象属性的poco序列化为Json

  19. 19

    如何使用json.net将枚举序列化为其他属性名称

  20. 20

    如何在不获得反序列化最新信息的情况下序列化对象的几个帧?

  21. 21

    如何在没有任何数据损坏风险的情况下序列化对象?

  22. 22

    如何在不使用序列化的情况下制作Java对象的深层副本?

  23. 23

    如何在不丢失“连接”的情况下序列化Atom api对象

  24. 24

    如何在不包括所有CSS的情况下@import,而仅包括@extends的CSS

  25. 25

    Delphi-JSON对象-如何在不知道属性名称的情况下迭代所有属性?

  26. 26

    序列化为JSON时如何将属性分组为子对象

  27. 27

    如何将JSON反序列化为具有HashMap属性的对象?

  28. 28

    序列化为JSON时如何将属性分组为子对象

  29. 29

    如何仅将更改的表单属性序列化为JSON

热门标签

归档