저는 개발자가 아니라는 말로 시작하고 싶습니다. 이것은이 복잡한 문제에 대한 코드를 처음 작성하는 것입니다 (적어도 저에게는). 모든 도움 /지도를 주시면 감사하겠습니다.
이 프로그램의 아이디어는 이름을 입력 한 후 API URL에서 직원 사용자 ID (또는 서명)를 검색하는 것입니다.
JSON 문자열이 있습니다.
[{"signature":"JDOW","firstName":"Jane","fullName":"Dow, Jane","lastName":"Dow"}]
컬렉션으로 역 직렬화하려고합니다. 하지만 오류가 발생합니다. 누군가이 문제를 해결하는 올바른 방법을 알려줄 수 있습니까?
namespace TimeSheet_Try11_Models
{
public class Employeename
{
[JsonProperty("Signature")]
public string Signature { get; set; }
[JsonProperty("FirstName")]
public string FirstName { get; set; }
[JsonProperty("FullName")]
public string FullName { get; set; }
[JsonProperty("LastName")]
public string LastName { get; set; }
}
}
다음 코드를 사용하여 변환하려고합니다.
uri = StaticStrings.UrlIora + name;
var response = wc.DownloadString(uri);
Employeename status = JsonConvert.DeserializeObject<Employeename>(response);
내가 얻는 오류는 다음과 같습니다.
Newtonsoft.Json.JsonSerializationException : '현재 JSON 배열 (예 : [1,2,3])을'TimeSheet_Try11_Models.Employeename '형식으로 역 직렬화 할 수 없습니다. 형식에 JSON 개체 (예 : { "name": "value"})가 필요하기 때문에 올바르게 역 직렬화하십시오.
수집 할 Json 데이터를 다음과 같이 역 직렬화합니다.
var status = JsonConvert.DeserializeObject<List<Employeename>>(response);
또는
List<Employeename> status = JsonConvert.DeserializeObject<List<Employeename>>(response);
또 다른 점은 속성에 속성을 사용할 필요가 없다는 것입니다 [JsonProperty("anyProperty")]
. Json은 속성에서 사용하지 않고 역 직렬화 할 수 있습니다.
status
객체 에서 deserialzed 데이터를 가져온 후 해당 객체에서 다음과 같이 값을 가져올 수 있습니다.
string signature = status.Select(js => js.Signature).First();
마찬가지로 다른 값도 status
.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다