Windows Phone 8.1 응용 프로그램에서 작업 중입니다. 나는 REST API로 작업 중이며 API는 JSON 데이터를 리턴한다. API를 호출 할 때마다 매개 변수로 deserialize 될 클래스 유형을 보내고 deserialized 데이터를 해당 모델의 객체로 가져 오는 등의 메소드를 만들고 싶습니다. 현재 코드는 다음과 같습니다.리플렉션을 사용하여 JSON을 다른 클래스로 비 직렬화
public static async Task GetAPIData(Type referanceModel, string serviceUrl)
{
HttpClient client = new HttpClient();
var responce = await client.GetAsync(new Uri(serviceUrl));
JArray arr = JArray.Parse(await response.Content.ReadAsStringAsync());
foreach (JObject obj in arr.Children<JObject>())
{
JsonSerializerSettings settings = new JsonSerializerSettings();
settings.NullValueHandling = NullValueHandling.Ignore;
settings.MissingMemberHandling = MissingMemberHandling.Ignore;
var rcvdData = JsonConvert.DeserializeObject<referanceModel>(obj.ToString(), settings);
//var method = typeof(JsonConvert).GetTypeInfo().GetDeclaredMethods("DeserializeObject").ToList()[5].MakeGenericMethod(ReferanceModel);
//var rcvd = method.Invoke(null, new object[] { obj.ToString(), settings });
}
}
위의 코드는 referanceModel이 변수라는 오류를 보여줍니다. 내가 코멘트 코드를 시도했지만 너무 작동하지 않습니다.
두 클래스는 AllvehData 및 AllDevicesData입니다. 이러한 클래스는 모두 내가 주제에 많이 검색 한 this을 찾았지만 이해하는 데 실패 ThisUser
public class AllVehData
{
public string Colour { get; set; }
public string Make { get; set; }
public string model { get; set; }
public string Year { get; set; }
}
public class AllDevicesData
{
bool has_tracking_device { get; set; }
int drive_type_name_string_id { get; set; }
public int vehicle_status { get; set; }
public int cargo_capacity { get; set; }
public int fuel_capacity { get; set; }
}
의 인스턴스와 ThisUserClass라는 단일 클래스 내부에 있습니다. 도움이 필요해.
@BozhdarStoinev 당신이 말해 주 시겠어요. –
예를 들어 ... 직면 한 문제는 무엇입니까? –
Json 파트에 코드를 추가했습니다. rcvdData로 값을 업데이트하지 않습니다. rcvdData는 모든 Null 값을 가진 AllVehData 클래스의 객체가됩니다. –