JSON의 JavaScript 개체가 원하는 C# 개체로 deserialize하지 않으면 어떻게 입력을 잘못했는지 설명하는 오류 메시지를 제공하도록 질문 할 수 있습니까? (JSON 형식을 가정하면 올바른, 그냥 데이터가 유효하지 않습니다.)C# 개체로 역 직렬화하기 전에 JSON 유효성 확인
내 C# 클래스 : (간체)
public class Dependent
{
public Dependent()
{
}
public string FirstName { get; set; }
public DateTime DateOfBirth { get; set; }
}
테스트 코드 역 직렬화하기 :
string dependents = @"[
{
""FirstName"": ""Kenneth"",
""DateOfBirth"": ""02-08-2013""
},
{
""FirstName"": ""Ronald"",
""DateOfBirth"": ""08-07-2011""
}
]";
JavaScriptSerializer jss = new JavaScriptSerializer();
List<Dependent> deps = new List<Dependent>();
deps = jss.Deserialize<List<Dependent>>(dependents);
을 이것은 모두 작동합니다. 날짜가 아닌 날짜가 생일로 전달되는 경우를 제외하고는 비 직렬화가 실패합니다.
"Dependent 2 생년월일이 유효한 날짜가 아닙니다."라는 오류 메시지를 제공하고 싶습니다. 또는 "부양 가족 2는 18 세 미만이어야합니다."
JSON이 내 객체로 직렬화되지 않는다면 JSON의 세부 정보를 어떻게 확인할 수 있습니까?
가능한 해결 방법 :
public class SerializableDependent
{
public SerializableDependent()
{
}
public string FirstName { get; set; }
public string DateOfBirth { get; set; }
}
그리고 나는 문자열로 모든 것을 가진 오류를 얻을해야하고, 내가 할 수있는 객체를 통해 루프 내 검증을한다. 하지만 이것은 잘못된 것 같습니다.
예외가 문제를 설명 할 수 있습니까? –