JObject类是最基础的类。
实例:
JObject obj=JObject.Parse("你的Json字符串");
MessageBox.Show((string)obj["目录"]);
高级用法:
以百度OCR为例,先定义类:
public class AccessTokenModel
{
//log_id不能用int,会炸
public string log_id { get; set; }
public int words_result_num { get; set; }
public JArray words_result { get; set; }
public int error_code { get; set; }
public string error_msg { get; set; }
}
部分代码(来自PCRGuildAutoBattleHelper):
// 通用文字识别
var result = client.GeneralBasic(BitmapByte(bit), null);
AccessTokenModel ocrResult = JsonConvert.DeserializeObject<AccessTokenModel>(result.ToString());
string rz = "";
if (ocrResult.error_msg != null)
{
rz = "QPS已达到峰值!";
}
else
{
if (ocrResult.words_result.HasValues)
{
//rz = result["words_result"].First.SelectToken("words").ToString();
rz = ocrResult.words_result.First.SelectToken("words").ToString();
//=======================从这里开始写轴===========================
for (int i = 0; i < listUB.Count; i++)
{
ClickCharacterByUBTime(rz, listUB[i].ubTime, listUB[i].clickWho);
}
}
else
{
rz = "无法识别";
}
}
一般使用例:
string json = "{\"Name\" : \"Jack\", \"Age\" : 34, \"Colleagues\" : [{\"Name\" : \"Tom\" , \"Age\":44},{\"Name\" : \"Abel\",\"Age\":29}] }";
//将json转换为JObject
JObject jObj = JObject.Parse(json); //通过属性名或者索引来访问,仅仅是自己的属性名,而不是所有的
JToken ageToken = jObj["Age"];
Console.WriteLine(ageToken.ToString());
参考文档: