본문 바로가기
C#

[C#] JSON 항목 삭제가 불가능 할 때 삭제 하는 방법

by Minius 2021. 7. 1.
반응형

JSON 항목 삭제

배경

C#에서 JSON의 항목을 삭제하던 중, 에러를 만났다.

Cannot add or remove items from Newtonsoft.Json.Linq.JProperty.

JProperty에서 항목을 추가하거나 삭제할 수 없다는 것.

 

이유

이유는 token["_id"]와 같이 접근했을 때, 우리는 값에 접근하게 된다.

즉 token["_id"]가 아닌 그 값에다가 remove를 해서 에러가 났던 것이다.

 

이런 JSON 구조에서는 Key 값과 Value 값이 있기 때문인데, Key를 삭제해줘야 하는데 Value를 삭제하려고 했다는 의미이다.

 

따라서 token["_id"].Parent.Remove()를 하면 된다.

 

출처

Getting the error “Cannot add or remove items from Newtonsoft.Json.Linq.JProperty” in Json.net

 

Getting the error "Cannot add or remove items from Newtonsoft.Json.Linq.JProperty" in Json.net

So I'm trying to control deserialization by reading a json object as a JObject, deleting some fields, and then deserializing it again to my target object using Json.Net. The problem is, any time I ...

stackoverflow.com

 

다른 JSON 관련 글 보기

https://emessell.tistory.com/entry/C-JSON-beautify-%ED%95%98%EA%B8%B0-%EB%93%A4%EC%97%AC%EC%93%B0%EA%B8%B0

 

[C#] JSON, beautify 하기, 들여쓰기

var x = JsonConvert.SerializeObject(jsonString, Formatting.Indented); 위와 같이 시리얼라이즈 할 때, Formatting.Indented를 두번째 인자로 넣어주면 된다. 보통은 사용할 일이 없지만, 나는 파일의 크기를 늘려주기

blog.minius.dev

 

https://emessell.tistory.com/entry/XML-JSON-%EB%B9%84%EA%B5%90-%EC%B0%A8%EC%9D%B4

 

XML / JSON 비교, 차이

http://tcpschool.com/json/json_intro_xml 코딩교육 티씨피스쿨 4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등 tcpschool.com 위의 URL에서 가져 온 내용입니다. 쉽게

blog.minius.dev

 

댓글