Как я могу сделать плоский объект, удалив ключи в C #? - PullRequest
0 голосов
/ 12 января 2019

Я действительно не уверен, что это может быть достигнуто. Как я могу удалить некоторые вложенные ключи в объекте и сделать объект очень плоским. У меня динамический объект выглядит следующим образом:

EventData ": {" ChangeSet ": {" Change ": { "изменения": [ ]}}}

и я хочу изменить выше на

EventData ": {[]}

это может быть достигнуто в C #?

1 Ответ

0 голосов
/ 12 января 2019

Используйте пакет 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();

        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...