Newtonsoft.json을 사용하여 json 구문 분석

프로젝트는 Newtonsoft.json을 사용하여 json 문자열을 구문 분석해야 합니다.

다음은 litJson과 Newtonsoft의 사용 비교입니다.

이 json 문자열이라고 가정합니다.

{
    "total": 1,
    "code": 0,
    "rows": [
        {
            "id": 1013,
            "name": "QB",
            "version": "1.0.2",
            "size": 707608
        }
    ]
}

먼저 LitJson을 사용하여 단어를 구문 분석합니다.

private void LitJsonRead(string dataJson)
{
    JsonData json = JsonMapper.ToObject(dataJson);
    if((int)json["code"]==0)
    {
        JsonData data = json["rows"][0];
        int id = (int)data["id"];
        string name = data["name"].ToString();
        string version = data["version"].ToString();
        string size = data["size"].ToString();
    }
    
}

Newtonsoft 사용은 비슷하지만 한 단계가 더 있습니다.

private void NewtonsoftRead(string dataJson)
{
    JObject json = JObject.Parse(dataJson);
    if((int)json["code"] == 0)
    {
        // 过去的错误做法
        // string dataS = json["rows"][0].ToString();
        // JObject data = JObject.Parse(dataS);
        // 如果明确后续的部分是字典格式,则应该将JToken 转为 JObject
        var data = json["rows"][0] as JObject;
        int id = (int)data["id"];
        string name = data["name"].ToString();
        string version = data["version"].ToString();
        string size = data["size"].ToString();
    }
}

위는 json을 읽는 두 가지 json 구문 분석 도구의 사용 방법입니다.LitJson을 예로 들어 개체는 모두 JsonData이며, 읽어도 JsonData 개체를 직접 사용하여 저장할 수 있습니다.

Newtonsoft의 경우 읽기 개체를 먼저 문자열 형식으로 저장한 다음 JObject.Parse를 사용하여 JObject 개체로 변환하여 계속 읽을 수 있습니다.

효과는 거의 동일하며 개인적인 사용 습관에 따라 다릅니다.

Guess you like

Origin blog.csdn.net/DoyoFish/article/details/81976181