using System.Collections.Generic;
public int Price { get; set; }
public string Reference { get; set; }
public int Idn { get; set; }
[JsonProperty("id_image")]
public int ImageId { get; set; }
public string Legend { get; set; }
public static void Main()
string jsonStrOne = "{\"1228\":{\"price\":836,\"reference\":\"243107210-01\",\"idn\":1228},\"1294\":{\"price\":864,\"reference\":\"243607210-01\",\"idn\":1294}}";
string jsonStrTwo = "{\"1228\":[{\"id_image\":\"35298\",\"legend\":\"\"},{\"id_image\":\"35299\",\"legend\":\"\"},{\"id_image\":\"35300\",\"legend\":\"\"}],\"1294\":[{\"id_image\":\"35298\",\"legend\":\"\"},{\"id_image\":\"35299\",\"legend\":\"\"},{\"id_image\":\"35300\",\"legend\":\"\"}]}";
var jsonOne = JsonConvert.DeserializeObject<Dictionary<int, RootOne>>(jsonStrOne);
var jsonTwo = JsonConvert.DeserializeObject<Dictionary<int, List<RootTwo>>>(jsonStrTwo);
var query = from listOne in jsonOne
where listOne.Key == listTwo.Key
select new {Id = listOne.Key, Ref = listOne.Value.Reference, Images = listTwo.Value};
foreach (var item in query)
Console.WriteLine("Id:" +item.Id);
Console.WriteLine("Ref" +item.Ref);
Console.WriteLine("Images:" + string.Join(",", item.Images.Select(x=>x.ImageId).ToArray()));
Console.WriteLine("----------------------------------");