Внутреннее свойство json удалить

#c# #json

#c# #json

Вопрос:

 {
    "CIT": "Branch",
    "travel": {
        "arrival": {
            "time": "2021-02-06T04:44:30Z"
        },
        "departure": {
            "time": "2021-02-06T09:08:11Z"
        },
        "homearrival": {
            "time": "2021-02-06T11:26:25Z"
        },
        "homedeparture": {
            "time": "2021-02-06T04:44:29Z"
        }
    },
    "cusname": "Mr. Senesh",
    "appstatus": "Complete",
    "cuscontact": "0252223597",
    "serviceend": "2021-02-06T09:08:05Z",
    "servicestart": "2021-02-06T06:49:47Z"
}
 

Я хочу удалить тег homearrival. Я проанализировал его как JObject, используя newtonsoftjson (например. JObject calldetail = JObject.Parse(Модель.Calldetail); )

позвоните подробно .Собственность («homearrival»)?.Remove(); не сработало.

Комментарии:

1. Пожалуйста, отформатируйте свой вопрос так, чтобы его было легче читать. Пожалуйста, также предоставьте свои усилия до сих пор.

2. Что происходит, когда вы анализируете его в определение объекта, у которого нет свойства HomeArrival. Удаляет / пропускает теги, не так ли ..!!

3. @PrateekShrivastava Я не анализирую его для определения объекта в его динамическом JSON. Я анализирую его в JObject с помощью библиотеки Newtonsoft.

4. @John Я отформатировал справку plz

5. «homearrival» — это не свойство calldetail . «путешествие» — это свойство calldetail , а «homearrival» — свойство «путешествия».

Ответ №1:

Похоже, вы на правильном пути. Однако свойство «homearrival» не является свойством родительского объекта «calldetail». Это свойство подобъекта «путешествие».

Чтобы удалить свойство «homearrival», вам нужно будет вызвать метод «Remove ()» для подобъекта «travel». Например, я считаю, что следующий фрагмент кода должен решить эту проблему:

 JObject calldetail = JObject.Parse(jsonString);
JObject travel = (JObject)calldetail.Property("travel").Value;
travel.Property("homearrival").Remove();
 

Пожалуйста, обратите внимание, что может быть более эффективный способ сделать это. Приведенный выше фрагмент кода предназначен только для подтверждения концепции.

Ответ №2:

 JObject m = JObject.Parse(calldetail["travel"].ToString()); m.Property("homedeparture")?.Remove(); 
calldetail["travel"] = m;
 

Комментарии:

1. Хотя этот код может дать решение вопроса, лучше добавить контекст относительно того, почему / как это работает. Это может помочь будущим пользователям изучить и в конечном итоге применить эти знания к своему собственному коду. Вы также, вероятно, получите положительные отзывы / положительные отзывы от пользователей, когда код будет объяснен.