현재 JSON 어레이(예: [1, 2, 3])를 유형으로 역직렬화할 수 없습니다.
저는 다음과 같은 수업을 듣습니다.
public class MyStok
{
public int STId { get; set; }
public int SM { get; set; }
public string CA { get; set; }
public string Br { get; set; }
public string BNo { get; set; }
public decimal Vat { get; set; }
public decimal Price { get; set; }
}
나는 다음과 같이 역직렬화한다.
string sc = e.ExtraParams["sc"].ToString();
MyStok myobj = JSON.Deserialize<MyStok>(sc);
출력은 다음과 같습니다(string sc
)의 피들러:
[
{
"STId": 2,
"CA": "hbh",
"Br": "jhnj",
"SM": 20,
"Vat": 10,
"Price": 566,
"BNo": "1545545"
}
]
하지만 다음과 같은 오류가 발생합니다.
현재 JSON 배열(예: [1, 2, 3])을 유형 [...]으로 역직렬화할 수 없습니다.
그 코드에 뭐가 잘못됐나요?
문자열에 1개의 어레이가 포함되어 있는 것 같습니다.MyStok
그 안에 목적물이 있다.입력의 양 끝에서 대괄호를 제거하면 데이터를 단일 개체로 역직렬화할 수 있습니다.
MyStok myobj = JSON.Deserialize<MyStok>(sc.Substring(1, sc.Length-2));
어레이를 디시리얼라이즈하여MyStok
오브젝트를 인덱스 0으로 가져옵니다.
var myobjList = JSON.Deserialize<List<MyStok>>(sc);
var myObj = myobjList[0];
어레이 타입의 경우는, 이것을 사용해 주세요.
List<MyStok> myDeserializedObjList = (List<MyStok>)Newtonsoft.Json.JsonConvert.DeserializeObject(sc, typeof(List<MyStok>));
Json의 직렬화를 해제하는 방법에 대한 자세한 내용은 여기를 참조하십시오.
똑같은 에러 메세지가 표시되었습니다.Aditi의 예를 들어보니 진짜 문제가 뭔지 알 수 있었습니다.(다른 apiEndpoint가 비슷한 콜을 하고 있었기 때문에 정상적으로 동작했습니다.)이 경우 목록에 있는 개체는 아직 추출된 인터페이스를 가지고 있지 않습니다.제가 한 발짝을 놓쳤기 때문에, 그 발은 그 발뒤꿈치를 묶기 위해
List<OfthisModelType>
역직렬화에 실패했습니다.
이 문제가 발생했을 경우는, 그것이 문제의 원인인지 아닌지를 확인해 주세요.
이름이 없는 루트 레벨 어레이가 있고 실제로 메서드 추가와 같은 용도로 사용하려는 경우 다른 대안으로 사용할 수 있습니다.
public class MyStoks : List<MyStok>
{
}
그러면 이렇게 역직렬화할 수 있습니다.
MyStoks myObj = JsonConvert.DeserializeObject<MyStoks>(jsonString);
HttpClient webClient = new HttpClient();
Uri uri = new Uri("your url");
HttpResponseMessage response = await webClient.GetAsync(uri)
var jsonString = await response.Content.ReadAsStringAsync();
var objData = JsonConvert.DeserializeObject<List<CategoryModel>>(jsonString);
언급URL : https://stackoverflow.com/questions/17762032/cannot-deserialize-the-current-json-array-e-g-1-2-3-into-type
'programing' 카테고리의 다른 글
Jeest에서 예기치 않은 토큰이 발견되었습니다. (0) | 2023.03.28 |
---|---|
노드 사스는 개발입니까, 아니면 React 프로젝트에 의존합니까? (0) | 2023.03.28 |
Angular의 개요JS 및 각도서로 관련된 UI? (0) | 2023.03.28 |
Wordpress 사용자 및 사용자 이름 - 한 테이블의 여러 행을 다른 테이블의 한 행에 결합합니다. (0) | 2023.03.28 |
Mongoose로 기존 컬렉션에 접속하려면 어떻게 해야 하나요? (0) | 2023.03.28 |