一、LitJson插件介紹
LitJson插件介紹
LitJson是一個(gè)開源項(xiàng)目,比較小巧輕便,安裝也很簡(jiǎn)單,在Unity里只需要把LitJson.dll放到Plugins文件夾下,并在代碼的最開頭添加 “Using LitJson”就可以了。簡(jiǎn)單來(lái)說(shuō),LitJson的用途是實(shí)現(xiàn)Json和代碼數(shù)據(jù)之間的轉(zhuǎn)換,一般用于從服務(wù)器請(qǐng)求數(shù)據(jù),得到返回的Json后進(jìn)行轉(zhuǎn)換從而在代碼里可以訪問。
關(guān)于和服務(wù)器數(shù)據(jù)之間的轉(zhuǎn)換在此就不再贅述,官網(wǎng)以及一些博客里已有涉及,而且也比較詳細(xì)了。
這里,主要談一下LitJson的其他用途。
想象一個(gè)場(chǎng)景,你需要顯示一個(gè)家庭信息的表格,這個(gè)表格的每一行代表了你的一個(gè)家人的名字、年齡、手機(jī)號(hào)碼和住址等信息。因?yàn)檫@個(gè)信息不大,用數(shù)據(jù)庫(kù)實(shí)在是大材小用,而且也很麻煩。
我們可以用一個(gè)數(shù)據(jù)結(jié)構(gòu)來(lái)在代碼里表示每個(gè)家人的信息:
1. public class FamilyInfo {
2. public string name;
3. public int age;
4. public string tellphone;
5. public string address;
6. }
然后用一個(gè)List來(lái)表示家庭信息表:
1. public class FamilyList {
2. public List<FamilyInfo> family_list;
3. }
最后,打印信息:
1. private void DisplayFamilyList(FamilyList familyList) {
2. if (familyList == null) return;
3.
4. foreach (FamilyInfo info in familyList.family_list) {
5. Debug.Log("Name:" + info.name + " Age:" + info.age + " Tel:" + info.tellphone + " Addr:" + info.address);
6. }
7. }
準(zhǔn)備工作都已經(jīng)做好,那么數(shù)據(jù)到底在什么時(shí)候初始化呢?
正如前面所說(shuō),我們把信息存成一個(gè)表格,并保存為txt格式。注意,為了能使用LitJson解析,txt中必須使用Json格式。
family.txt如下:
1. {
2. "family_list": [
3. {
4. "name" : "candycat",
5. "age" : 21,
6. "tellphone" : "xxx",
7. "address" : "xxx"
8. },
9. {
10. "name" : "candycat#",
11. "age" : 22,
12. "tellphone" : "xxx",
13. "address" : "xxx"
14. },
15. {
16. "name" : "candycat##",
17. "age" : 23,
18. "tellphone" : "xxx",
19. "address" : "xxx"
20. }
21. ]
22. }
代碼如下:
1. using UnityEngine;
2. using UnityEditor;
3. using System.Collections;
4. using System.Collections.Generic;
5. using LitJson;
6.
7. public class FamilyInfo {
8. public string name;
9. public int age;
10. public string tellphone;
11. public string address;
12. }
13. public class FamilyList {
14. public List<FamilyInfo> family_list;
15. }
16. public class LitJsonSample : MonoBehaviour {
17. public FamilyList m_FamilyList = null;
18. // Use this for initialization
19. void Start () {
20. ReloadFamilyData();
21. DisplayFamilyList(m_FamilyList);
22. }
23.
24. private void ReloadFamilyData()
25. {
26. UnityEngine.TextAsset s = Resources.Load("Localize/family") as TextAsset;
27. string tmp = s.text;
28. m_FamilyList = JsonMapper.ToObject<FamilyList>( tmp );
29. if ( JsonMapper.HasInterpretError() )
30. {
31. Debug.LogWarning( JsonMapper.GetInterpretError() );
32. }
33. }
34. private void DisplayFamilyList(FamilyList familyList) {
35. if (familyList == null) return;
36. foreach (FamilyInfo info in familyList.family_list) {
37. Debug.Log("Name:" + info.name + " Age:" + info.age + " Tel:" + info.tellphone + " Addr:" + info.address);
38. }
39. }
40. }
有幾點(diǎn)注意的地方:
· Resources.Load("Localize/family")表示加載family文件,但一定要注意要把family.txt文件放在Resources文件夾下,只有這樣Resources.Load才能夠訪問到,在這個(gè)例子里family的絕對(duì)路徑為“Resources/Localize/family”。這是因?yàn)?/span>Resources文件夾是Unity默認(rèn)的資源文件夾,有著特殊的用途,這里我還不是很了解,以后要深入學(xué)習(xí)一下;
教程名稱:LitJson插件介紹 | 語(yǔ) 言:中文 | 頁(yè)數(shù)/時(shí)長(zhǎng): 4頁(yè) |
軟件版本: unity | 上傳時(shí)間:2017/03/10 | 價(jià)格:¥0 |
文件格式: .docx | 文件大?。?0.3kb |
使用說(shuō)明:
1. 本站所有資源(包括3D模型、CG教程、插件軟件、材質(zhì)貼圖、工程文件等)由設(shè)計(jì)師上傳,僅供學(xué)習(xí)、參考,請(qǐng)勿用于非法用途。
2. 本站付費(fèi)類資源第一次需有償下載,重復(fù)下載不再收費(fèi)。
3. 若出現(xiàn)3d模型類資源打不開,請(qǐng)確認(rèn)您的軟件版本是否過(guò)低。
4. 本站歡迎設(shè)計(jì)師注冊(cè)開店,上傳作品進(jìn)行交流、交易。
5. 如在使用過(guò)程中,遇到任何問題,請(qǐng)下拉頁(yè)面至評(píng)論區(qū)留言,或咨詢QQ:2353487910。
您還未登錄
全部評(píng)論: 0條