一、LitJson插件介紹
LitJson插件介紹
LitJson是一個開源項目,比較小巧輕便,安裝也很簡單,在Unity里只需要把LitJson.dll放到Plugins文件夾下,并在代碼的最開頭添加 “Using LitJson”就可以了。簡單來說,LitJson的用途是實現(xiàn)Json和代碼數(shù)據(jù)之間的轉(zhuǎn)換,一般用于從服務(wù)器請求數(shù)據(jù),得到返回的Json后進行轉(zhuǎn)換從而在代碼里可以訪問。
關(guān)于和服務(wù)器數(shù)據(jù)之間的轉(zhuǎn)換在此就不再贅述,官網(wǎng)以及一些博客里已有涉及,而且也比較詳細了。
這里,主要談一下LitJson的其他用途。
想象一個場景,你需要顯示一個家庭信息的表格,這個表格的每一行代表了你的一個家人的名字、年齡、手機號碼和住址等信息。因為這個信息不大,用數(shù)據(jù)庫實在是大材小用,而且也很麻煩。
我們可以用一個數(shù)據(jù)結(jié)構(gòu)來在代碼里表示每個家人的信息:
1. public class FamilyInfo {
2. public string name;
3. public int age;
4. public string tellphone;
5. public string address;
6. }
然后用一個List來表示家庭信息表:
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. }
準備工作都已經(jīng)做好,那么數(shù)據(jù)到底在什么時候初始化呢?
正如前面所說,我們把信息存成一個表格,并保存為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. }
有幾點注意的地方:
· Resources.Load("Localize/family")表示加載family文件,但一定要注意要把family.txt文件放在Resources文件夾下,只有這樣Resources.Load才能夠訪問到,在這個例子里family的絕對路徑為“Resources/Localize/family”。這是因為Resources文件夾是Unity默認的資源文件夾,有著特殊的用途,這里我還不是很了解,以后要深入學習一下;
教程名稱:LitJson插件介紹 | 語 言:中文 | 頁數(shù)/時長: 4頁 |
軟件版本: unity | 上傳時間:2017/03/10 | 價格:¥0 |
文件格式: .docx | 文件大?。?0.3kb |
您還未登錄
全部評論: 0條