using System.Collections;
using System.Collections.Generic;
using System.Runtime.Serialization.Formatters;
using Newtonsoft.Json.Linq;
using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Serialization;
""@encoding"" : ""UTF-8""
""@FeedName"" : ""AdminData"",
""lastName"" : ""Schmoe"",
""firstName"" : ""Steve"",
""int"" : [""4"", ""16"", ""25"", ""20"", ""21"", ""22"", ""17"", ""23"", ""18""]
""firstName"" : ""Bill"",
""lastName"" : ""Gates"",
""int"" : [""3"", ""16"", ""25"", ""20""]
""lastName"" : ""Person"",
public static void Main()
var jsonString = GetJson();
JObject jsonFeed = JObject.Parse(jsonString);
var query = from people in jsonFeed.SelectTokens("DataFeed.People")
.SelectToken("roleIds.int")
where (int?)people["active"] == 1 && ids.Contains(desiredRoleId)
FirstRoleId = ids.FirstOrDefault(),
ResAnFName = (string)people["firstName"],
ResAnLName = (string)people["lastName"]
Console.WriteLine("Query result: ");
Console.WriteLine(JsonConvert.SerializeObject(query, Formatting.Indented));
public static class JsonExtensions
public static IEnumerable<JToken> SingleOrMultiple(this JToken source)
return Enumerable.Empty<JToken>();
IEnumerable<JToken> arr = source as JArray;
return arr ?? new[] { source };