一、LitJson插件介绍
LitJson插件介绍
LitJson是一个开源项目,比较小巧轻便,安装也很简单,在Unity里只需要把LitJson.dll放到Plugins文件夹下,并在代码的最开头添加 “Using LitJson”就可以了。简单来说,LitJson的用途是实现Json和代码数据之间的转换,一般用于从服务器请求数据,得到返回的Json后进行转换从而在代码里可以访问。
关于和服务器数据之间的转换在此就不再赘述,官网以及一些博客里已有涉及,而且也比较详细了。
这里,主要谈一下LitJson的其他用途。
想象一个场景,你需要显示一个家庭信息的表格,这个表格的每一行代表了你的一个家人的名字、年龄、手机号码和住址等信息。因为这个信息不大,用数据库实在是大材小用,而且也很麻烦。
我们可以用一个数据结构来在代码里表示每个家人的信息:
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. }
准备工作都已经做好,那么数据到底在什么时候初始化呢?
正如前面所说,我们把信息存成一个表格,并保存为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插件介绍 | 语 言:中文 | 页数/时长: 4页 |
软件版本: unity | 上传时间:2017/03/10 | 价格:¥0 |
文件格式: .docx | 文件大小:20.3kb |
您还未登录
全部评论: 0条