Unity解析JSON的幾種方式
1.使用JsonUtility(Unity自帶)解析數(shù)據(jù)
踩坑
*用于接收的JSON實(shí)體類需要聲明[Serializable] 序列化。
*使用Unity自帶方法時(shí),實(shí)體類如果是屬性成員(public string mname{get;set;})的話,
*在序列化的時(shí)候會(huì)缺失這些成員,導(dǎo)致解析不出來(lái)。將屬性改為字段即(public string mname;)。
var uri = new System.Uri(Path.Combine(Application.streamingAssetsPath, "demoText.json"));
UnityWebRequest request = UnityWebRequest.Get(uri);
yield return request.SendWebRequest();
if (request.isNetworkError)
{
Debug.Log(request.error);
}
else
{
string jsonStr = request.downloadHandler.text;
RootDate Data= JsonUtility.FromJson<RootDate >(jsonStr);
}
2.使用Newtonsoft.Json dll解析json 鏈接: link
var uri = new System.Uri(Path.Combine(Application.streamingAssetsPath, "demoText.json"));
UnityWebRequest request = UnityWebRequest.Get(uri);
yield return request.SendWebRequest();
if (request.isNetworkError)
{
Debug.Log(request.error);
}
else
{
string jsonStr = request.downloadHandler.text;
RootDate Data = JsonConvert.DeserializeObject<RootDate >(jsonStr);
}
3.使用LitJson解析數(shù)據(jù)文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-601671.html
var uri = new System.Uri(Path.Combine(Application.streamingAssetsPath, "demoText.json"));
UnityWebRequest request = UnityWebRequest.Get(uri);
yield return request.SendWebRequest();
if (request.isNetworkError)
{
Debug.Log(request.error);
}
else
{
string jsonStr = request.downloadHandler.text;
RootDate Data= JsonMapper.ToObject<RootDate>(jsonStr);
}
4.傳遞給前端或后端 json文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-601671.html
1.一種直接使用jsonData
JsonData data = new JsonData();
data["pageSize"] = "sd";
data["currentPage"] = "s";
data["startTime"] = "sdsdsd";
data["endTime"] = "sdsadsdsadsad";
var da = JsonMapper.ToJson(data);
2.另一種自寫一個(gè)類
Testdate testdate = new Testdate();
testdate.name = "sdsad";
testdate.code = 1;
var da = JsonMapper.ToJson(testdate);
到了這里,關(guān)于Unity解析JSON的幾種方式的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!