프로젝트는 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 개체로 변환하여 계속 읽을 수 있습니다.
효과는 거의 동일하며 개인적인 사용 습관에 따라 다릅니다.