ExtractText.cs 979 B

123456789101112131415161718192021222324252627282930313233343536
  1. using System;
  2. using System.Collections.Generic;
  3. using Newtonsoft.Json.Linq;
  4. namespace analyzeJSON
  5. {
  6. public class ExtractText
  7. {
  8. private readonly Dictionary<string, bool> keysToExtract;
  9. public ExtractText(Dictionary<string, bool> keys)
  10. {
  11. keysToExtract = keys ?? throw new ArgumentNullException(nameof(keys));
  12. }
  13. public void Extract(JToken token)
  14. {
  15. if (token.Type != JTokenType.String)
  16. return;
  17. var tokenName = AnalyzeJSON.GetNameFromPath(token.Path);
  18. if (string.IsNullOrWhiteSpace(tokenName))
  19. return;
  20. if (!keysToExtract.ContainsKey(tokenName))
  21. return;
  22. if (!Result.ContainsKey(tokenName))
  23. Result.Add(tokenName, new List<string>());
  24. Result[tokenName].Add(token.Value<string>());
  25. }
  26. public Dictionary<string, List<string>> Result { get; } = new();
  27. }
  28. }