I have a class like this;
public class MyStok
{
public int STId { get; set; }
public int SM { get; set; }
public string CA { get; set; }
pub
It looks like the string contains an array with a single MyStok object in it. If you remove square brackets from both ends of the input, you should be able to deserialize the data as a single object:
MyStok myobj = JSON.Deserialize(sc.Substring(1, sc.Length-2));
You could also deserialize the array into a list of MyStok objects, and take the object at index zero.
var myobjList = JSON.Deserialize>(sc);
var myObj = myobjList[0];