open Newtonsoft.Json.Linq
open Newtonsoft.Json.Converters
open Newtonsoft.Json.Serialization
let jsonFromFile<'T>(fileName : string, settings : JsonSerializerSettings) =
use streamReader = new StreamReader(fileName)
use jsonReader = new JsonTextReader(streamReader)
let serializer = JsonSerializer.CreateDefault(settings)
serializer.Deserialize<'T>(jsonReader)
let fileName = "question61288900.json"
let originalJsonString = "{\"1\":[29,30,41,48,64],\"2\":[29,320,441,548,11],\"3\":[29,3202,4421,5428,141]}"
File.WriteAllText(fileName, originalJsonString)
let requiredValues = [29;30;41;48;64]
let map = jsonFromFile<Map<string, int list>>(fileName, null)
|> Seq.filter (fun (key, value) -> requiredValues = value)
filteredMap |> Map.iter (fun key value ->
printf "Key = %A has matching list of values = %A\n" key value)