Convert JSON string to "complex" class?

I have this JSON line:

 {
"success":true,"user_id":"309","id":"309","sessId":false,"email":null,"name":"Mai Van Quan","username":"quanmv","role":"Reseller Admin","messages":"","org_name":null,"microPayNumber":"4949","microPayWord":"neocam","mobile":null,"permissions":{"ADD_CAMERA":true,
    "REMOVE_CAMERA":true,
    "EDIT_CAM_GENERAL":true,
    "ACCESS_CAM_TECHNICAL":true,
    "EDIT_CAM_PKG":true,
    "PREVIEW_CAM":true
    },"type":"sp","time":1279702793,"reseller":1,"status":"ok"}

I want to convert it to a C # object using JSON.NET. JSON.NET can convert it to a "generics" object, but I want to convert it to a more specific object. I created this class:

internal class User
    {

        public User(User u)
        {
            status = u.status;
            id = u.id;
            sessId = u.sessId;
            email = u.email;
            username = u.username;
            role = u.role;
            messages = u.messages;
            org_name = u.org_name;
            microPayNumber = u.microPayNumber;
            microPayWorld = u.microPayWorld;
            mobile = u.mobile;
            permissions = u.permissions;
            type = u.type;
            time = u.time;
            reseller = u.reseller;
            status = u.status;
        }

        public bool successs { private set; get; }


        public string user_id { private set; get; }
        public string id { private set; get; }



        public string name { private set; get; }
        public bool sessId { private set; get; }
        public string email { private set; get; }

        public string username { private set; get; }

        public string role { private set; get; }
        public string messages { private set; get; }
        public string org_name{ private set; get; }
        public string microPayNumber { private set; get; }
        public string microPayWorld { private set; get; }
        public string mobile { private set; get; }
        public Dictionary<string,bool> permissions { private set; get; }
        public string type { private set; get; }

        public int time { private set; get; }

        public int reseller { private set; get; }
        public string status { private set; get; }

}

but JSON.NET did not seem to be able to convert the given string into a User object. I tried some methods, but they are not all.

EDIT: for example:

var ob = JsonConvert.DeserializeObject<User>(str);

Exception: An exception was thrown by the call target.

How can I convert this string to an object, efficiently, because I need to convert several types of strings.

thank

+3
source share
2 answers

A couple of little things, and I have very good code.

: NullReferenceException. permissions User . Json.NET . User:

public User()
{
    permissions = new Dictionary<string, bool>();
}

: private internal User. public, .

UPDATE

. User [JsonObject] [JsonProperty], private internal, .

+8

Source: https://habr.com/ru/post/1755700/


All Articles