Как можно игнорировать или обрезать индексы из массива, когда я использую jsonfieldscollector?
В настоящее время у меня есть JsonFieldsCollector, который проверяет ответ Json, если это массив, объект/ свойство объекта, и сохраняет их в словаре и печатает их. но у меня есть один Json, подобный приведенному ниже, возвращенный с сервера
[ { id:1 name: "John" }, { id:2 name: "Bob" } ]
В настоящее время он печатается следующим образом
[0].id: 1
[0].имя : Джон
[1].id : 2
[2].имя : Боб
Я хочу распечатать без индекса []. как
id: 1
имя: Джон
//Вот класс JsonFieldsCollector
public class JsonFieldsCollector { private readonly Dictionary<string, JValue> fields; public JsonFieldsCollector(JToken token) { fields = new Dictionary<string, JValue>(); CollectFields(token); } private void CollectFields(JToken jToken) { switch (jToken.Type) { case JTokenType.Object: foreach (var child in jToken.Children<JProperty>()) CollectFields(child); break; case JTokenType.Array: foreach (var child in jToken.Children()) CollectFields(child); break; case JTokenType.Property: CollectFields(((JProperty)jToken).Value); break; default: fields.Add(jToken.Path, (JValue)jToken); //here is where it adding from indexes"[0].id" break; } } public IEnumerable<KeyValuePair<string, JValue>> GetAllFields() => fields; public static void Usage(IRestResponse response) { var Json = JToken.Parse(response.Content); var fieldsCollector = new JsonFieldsCollector(Json); var fields = fieldsCollector.GetAllFields(); foreach (var field in fields) { Console.WriteLine($"{field.Key}: {field.Value}"); } }
Что я уже пробовал:
Не уверен, что смогу это сделать ... пожалуйста, любая помощь была бы очень кстати