You can't do it from the constructor. You might consider a factory method within MyClass
like so:
public static MyClass Deserialize(string json)
{
return JsonConvert.DeserializeObject<MyClass>(json);
}
A constructor doesn't return anything, and as you stated this
is read-only. Thus, doing it in the constructor isn't really possible without (as you stated) manually parsing the JSON and initializing the different variables within that instance.
The factory method is probably what you're looking for.