Как сделать получение значения jproperty при итерации и задании ключа generic для следующих двух json
У меня есть следующий метод Validate, где я проверяю, содержит ли Json то же свойство и значения, что и сравниваемая модель.
Но у меня есть 2 Json, которые выглядят так, что я проверяю по одному за раз...
//Json 1 { "types": [ { "name": "Active Server Document", "value": -2147483648 }, { "name": "Adobe Acrobat Document", "value": -2147483647 } } Json 2 { "displayLocalTime": true, "statusRefreshInterval": 0 }
//вот мой метод проверки.
<pre> public class PropertiesValidator<TModel> { public static void Validate(IRestResponse response, IDTO modelObj) { var content = response.Content; bool flag = false; //var data = JsonHelper.Deserialize(content); JToken x = (JToken)JsonConvert.DeserializeObject(content); if(x.Type.Equals(JTokenType.Object)) { foreach (JProperty jp in x) { String[] prop = modelObj.getOrder().Split(','); String actualResult = ""; foreach(String p in prop) { //index is hardcoded for first Json... actualResult = jp.Value[0][p].ToString(); }; if (modelObj.ToString().Equals(actualResult)) { flag = true; break; } } Assert.IsTrue(flag, "None of the record matched for " + modelObj); } foreach (JObject jo in x) { String[] prop = modelObj.getOrder().Split(','); String actualResult = ""; foreach (String p in prop) { actualResult = jo[p].ToString(); } if (modelObj.ToString().Equals(actualResult)) { flag = true; break; } } Assert.IsTrue(flag, "None of the record matched for " + modelObj); }
Что я уже пробовал:
Я также устал от этого для первого Json, и я получил ключевое значение "имя", но я стараюсь избегать жесткого кодирования индекса
jp.значение[0][p].Метод toString()
а для второго Json я могу получить только ключ.. Но я пытаюсь предоставить ключ, который у меня есть в моей внутренней переменной цикла foreach p
jp.Name-да.Метод toString()