2017-11-18 4 views
0

.Jsonconvert.deserialize 일반 목록 유형 버그? 내가 deserializeobject (많은 데이터 유형에 대해 자주 제네릭 형식 루틴을 사용)하는 <pre><code>List<T> mylist = JsonConvert.DeserializeObject<List<T>>(instring); </code></pre> <p></p>을 사용하고

"{" "name": "value"}와 같은 현재 JSON 객체를 'System.Collections.Generic.List`1로 역 직렬화 할 수 없습니다. [NetRestSqlApi.Models.CA_Users ] ''형식에서 JSON 배열 (예 : [1,2,3])이 올바르게 직렬화를 필요로하기 때문에 이 오류를 해결하려면 JSON을 JSON 배열 (예 : [1,2,3])로 변경하십시오.

데이터가 정확합니다. 일반 형식 T를 사용하는 대신 개체에서 키잉을 비 직렬화하면 올바르게 작동합니다.

List<NetRestSqlApi.Models.CA_Users> mylist1 = 
JsonConvert.DeserializeObject<List<NetRestSqlApi.Models.CA_Users>>(instring); 

저는 실망입니다. 최신 newtonsoft 10.0.3을 사용하고 있습니다. 디버깅을했고 T가 똑같은 Object/Model인지 확인했습니다.

나는 앉아서 할 수있는 매개 변수 (내가 해왔다)하지만 하루의 끝에 다른 게시물을 기반으로, 나는이 deserialize 모두에 대해 동일하게 작동한다고 생각하고 있어요. 데이터에 아무런 문제가 보이지 않고 메모장에서 deserialize 할 수 있습니다. ++ 내가 보았을 때 모든 것이 정확합니다.

하드 코딩 이외의 추가 진단 또는 해결 방법에 대한 조언이 있습니까? 감사합니다. . 브렌트

+0

문제를 재현하기 위해 [mcve]를 제공 할 수 있습니까? –

+0

브라이언 감사합니다.하지만 발견했습니다. 나는 내 어깨를 들여다 보며 이번에 내가 멍청한 짓을 저지른 사람이 있었으면 좋겠다. – tallman

답변

0

감사합니다 브라이언,하지만 그것을 발견했습니다. 나는 덧붙였다.

경우 (대해서 typeof (T) == 대해서 typeof (CA_Users))

및 I 개체 대신 T로 목록을 전달 하였다 알았다. 그래서 디버그에서는 올바르게 보였지만 그렇지 않았습니다. 도와 주셔서 감사합니다.