개체를 json 문자열 대신 JObject로 직접 직렬화합니다.그물
개체를 직접 에 직렬화하는 방법JObject인스턴스가 있습니다.Net? 일반적으로 다음과 같이 개체를 json 문자열로 직접 변환합니다.
string jsonSTRINGResult = JsonConvert.SerializeObject(someObj);
그 후, 그것을 디시리얼라이즈 할 수 있다.JObject다음과 같습니다.
JObject jObj = JsonConvert.DeserializeObject<JObject>(jsonSTRINGResult);
이 방법은 효과가 있는 것 같습니다만, 이 방법은 이중의 퍼포먼스 히트(시리얼라이즈 후 디시리얼라이즈)가 있는 것 같습니다.한다SerializeObject내부적으로 사용하다JObject어떻게 접근할 수 있을까요?아니면 직접 시리얼화 할 수 있는 방법이 있을까요?JObject?
사용할 수 있습니다.FromObject정적 방법JObject
JObject jObj = JObject.FromObject(someObj)
http://www.newtonsoft.com/json/help/html/M_Newtonsoft_Json_Linq_JObject_FromObject.htm
주의해 주십시오.JObject@Eser가 제안하는 루트는 비배열 CLR 오브젝트에 대해서만 기능합니다.어레이 개체를 다음과 같이 변환하려고 하면 다음과 같은 예외가 발생합니다.JObject:
유형 'System'의 처리되지 않은 예외입니다.InvalidCastException'이 Newtonsoft에서 발생했습니다.Json.dll
추가 정보:'Newtonsoft' 형식의 개체를 캐스팅할 수 없습니다.Json.Linq.JArray를 입력하고 Newtonsoft를 입력합니다.Json.Linq.'JOBject'
따라서 어레이 오브젝트인 경우,JArray대신 아래 코드 스니펫에 나타나 있듯이
using Newtonsoft.Json.Linq;
JArray jArray = JArray.FromObject(someArrayObject);
모든 것을 조합하려면: 모든 것에 JToken을 사용합니다(Objects AND Arrays).
JToken token = JToken.FromObject(someObjectOrArray);
그럼 확인하세요.token.Type(오브젝트, 어레이 등)입니다.
언급URL : https://stackoverflow.com/questions/33088297/serialize-an-object-directly-to-a-jobject-instead-of-to-a-string-in-json-net
'programing' 카테고리의 다른 글
| AJAX 응답 데이터가 비어 있는지/빈지/null/정의되지 않음/0인지 확인합니다. (0) | 2023.03.08 |
|---|---|
| JSONObject의 잭슨2는 무엇입니까? (0) | 2023.03.08 |
| WordPress 로그인 후 리다이렉트 (0) | 2023.03.08 |
| 오브젝트를 명확히 하지 않고 circe를 사용하여 ADT를 디코딩하는 방법 (0) | 2023.03.08 |
| $스코프를 테스트하려면 어떻게 해야 합니까?시계(각도)JS) Jasmine의 변화? (0) | 2023.03.08 |