using System.Collections.Generic;
using System.Linq.Expressions;
public static void Main()
string json = "{\"ResponseCode\":0,\"Description\":null,\"ResponseObject\":{\"HaveAccessForAllObjects\":false,\"AccessibleObjects\":[2],\"ErrorId\":0}}";
var response = JsonConvert.DeserializeObject<ApiResponseBase>(json);
Console.WriteLine(response.ResponseObject.ToString());
Console.WriteLine(JsonConvert.DeserializeObject<CheckPermissionOutput>(response.ResponseObject.ToString()));
public class ApiResponseBase
public int ResponseCode { get; set; }
public string Description { get; set; }
public object ResponseObject { get; set; }
public class CheckPermissionOutput
public CheckPermissionOutput()
HaveAccessForAllObjects = false;
public bool HaveAccessForAllObjects { get; set; }
public IQueryable<long> AccessibleObjects { get; set; }
public class CheckPermissionOutput<T> : CheckPermissionOutput
public Expression<Func<T, bool>> Filter { get; set; }
public CheckPermissionOutput<T> Copy()
return new CheckPermissionOutput<T>
HaveAccessForAllObjects = HaveAccessForAllObjects,
AccessibleObjects = AccessibleObjects,