EKsumic's Blog

let today = new Beginning();

Click the left button to use the catalog.

OR

C#关于Newtonsoft.Json的基本使用案例

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());


参考文档:

http://www.libs.org.cn/content-22-135-1.html

This article was last edited at 2020-09-11 23:09:51

* *