繁体   English   中英

如何通过删除 C# 中的键来制作平面对象?

[英]How can i make a flat object by removing keys in C#?

我真的不确定这是否可以实现,如何删除对象中的一些嵌套键并使对象非常平坦。 我有一个动态对象如下,

EventData": { "ChangeSet": { "Change": { "changes": [ ] } } }

我想把上面的改成

事件数据": { [] }

这可以在 C# 中实现吗?

使用 NewtonSoft.JSon 包.. 以下代码可以解决问题。 我把它做成了一个字符串数组,因为我不知道你需要什么,但你可以根据自己的喜好改变它。

const string complex = "{\"EventData\": { \"ChangeSet\": { \"Change\": { \"changes\" : [ ]}}}}";

调用方法:

string simple = returnSimpleObject(complex);


        public class SerializeData
        {
             public string[] EventData { get; set; }
        }

        private static string returnSimpleObject(string Json)
        {
            JObject jobject = JObject.Parse(Json);

            JToken tEventData = jobject.SelectToken("EventData");
            SerializeData myEvent = tEventData.ToObject<SerializeData>();

            JToken tchanges = jobject.SelectToken("EventData.ChangeSet.Change.changes");
            myEvent.EventData = tchanges.ToObject<string[]>();


            JsonSerializer serializer = new JsonSerializer();
            StringWriter strWrite = new StringWriter();
            JsonWriter myWriter = new JsonTextWriter(strWrite);
            serializer.Serialize(myWriter, myEvent);
            return strWrite.ToString();

        }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM