You can cast the object returned by JsonConvert.DeserializeObject(jsonstring) to JObject and from there you can read values just like this.
JObject d = (JObject)JsonConvert.DeserializeObject(jsonString);
string value1 = d["1"].Value<string>();
Here is Demo
You can always check whether returned JToken is null, it will be null if JObject is not able to find the property provided in indexer.
bool attributeExist = d[attribute] != null;
See Here