이 포럼에서 많은 변형이있는 주제로 어려움을 겪고 있지만 나에게 맞는 것을 찾을 수없는 것 같고 JSON 배열이 다음과 같은 방식 때문이라고 생각합니다. (저는 전문가가 아니지만 나는 이미 "거의"끝을 얻는 것을 관리한다. 나는 "상태"와 "listOfCredDetails"값을 손에 넣어야한다.
내 JSON (responseFromServer라고 함) :
{
"Status": {
"StatusCode":143,
"SubStatus":0,
"Description":"Ok"
},
"ListofCredDetails":
[{
"Client":"a",
"CredID":111,
"CredUserID":"abc"
},
{
"Client":"b",
"CredID":112,
"CredUserID":"def"
},
{
"Client":"c",
"CredID":113,
"CredUserID":"ghi"
}]
}
그런 다음이 포럼의 많은 예제를 기반으로 약간의 조각을 취하여 수업을 만들었습니다.
[Serializable]
public class StatusReturn
{
public int StatusCode { get; set; }
public int SubStatus { get; set; }
public string Description { get; set; }
}
[Serializable]
public class CredDetailsReturn
{
public string Client{ get; set; }
public int CredID{ get; set; }
public string CredUserID{ get; set; }
}
[Serializable]
public class GetUserCredentialDetailsReturn
{
public StatusReturn status;
public List<CredDetailsReturn> listOfCredDetails;
public GetUserCredentialDetailsReturn()
{
status = new StatusReturn();
listOfCredDetails = new List<CredDetailsReturn>();
}
}
그런 다음 deserialize하여
1. "상태"와 그 요소를 하나의 개체로
2. "ListofCredDetails"및 요소 목록을 하나의 개체로
그런 다음 "GetUserCredentialDetailsReturn"에 대한 개체를 만들어 상태 (개체)와 ListofCredDetails (개체)를 동시에 반환합니다.
누구든지 내가 이것을 어떻게 얻을 수 있는지 이해하도록 도울 수 있습니까? 아래와 같이 deserialize하고 Json 데이터를 두 개의 개별 객체로 가져 오려고했습니다.
하지만 작동하지 않습니다 ....
public GetUserCredentialDetailsReturn InvokeRequest(RESTInvokeClass objInvoke)
{
...
...
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
string responseText = streamReader.ReadToEnd();
GetUserCredentialDetailsReturn result = new GetUserCredentialDetailsReturn();
result.status = JsonConvert.DeserializeObject<StatusReturn>(responseText);
result.listOfCredDetails = JsonConvert.DeserializeObject<List<CredDetailsReturn>>(responseText);
return result;
}
}
먼저 클래스의 속성 이름 GetUserCredentialDetailsReturn
을 Status로, listOfCredDetails를 ListofCredDetails로 변경해야합니다 .
그런 다음 GetUserCredentialDetailsReturn
아래 코드 를 사용하여 Json을 클래스로 역 직렬화 할 수 있습니다.
GetUserCredentialDetailsReturn result = new GetUserCredentialDetailsReturn();
result = JsonConvert.DeserializeObject<GetUserCredentialDetailsReturn>(responseText);
결과에서 상태 및 listOfCredDetails를 얻을 수 있습니다.
// result.Status
// result.ListofCredDetails
이것이 당신에게 도움이되기를 바랍니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다