.NET Fiddle

CSharp · Console

/Program.cs

using System;
using System.Collections.Generic;
using Newtonsoft.Json;

   public class SingleFarm
   {
        public List<string> Modules { get; set; }
        public List<string> Servers { get; set; }
   }

    public class SingleEnv
    {
        public Dictionary<string, SingleFarm> Farms { get; set; }
    }

    public class FarmsModel
    {
        public Dictionary<string, SingleEnv> Envs { get; set; }
    }
					
public class Program
{
	private const string json = @"
{
    ""ENV1"": {
        ""WWW"": {
            ""Modules"": [
                ""module21""
            ],
            ""Servers"": [
                ""a-1""
            ]
        }
    },
    ""ENV2"": {
        ""FARM1"": {
            ""Modules"": [
                ""module41""
            ],
            ""Servers"": [
                ""s1"",
                ""s2""
            ]
        },
        ""FARM2"": {
            ""Modules"": [
                ""module11""
            ],
            ""Servers"": [
                """"
            ]
        },
        ""FARM3"": {
            ""Modules"": [
                ""module1""
            ],
            ""Servers"": [
                """"
            ]
        }
    },
    ""ENV3"": {
        ""FARM1"": {
            ""Modules"": [
                ""module10""
            ],
            ""Servers"": [
                ""server1""
            ]
        },
        ""FARM2"": {
            ""Modules"": [
                ""module22""
            ],
            ""Servers"": [
                """"
            ]
        },
        ""FARM3"": {
            ""Modules"": [
                ""module33""
            ],
            ""Servers"": [
                ""server3""
            ]
        }
    }
}
";	
	
	public static void Main()
	{
		var parsed = JsonConvert.DeserializeObject<Dictionary<string, SingleEnv>>(json);
		parsed.Dump();
	}
}
;