Unity利用JsonFX解析Json格式文本

来源:互联网 发布:淘宝账号及密码免费送 编辑:程序博客网 时间:2024/06/02 05:51

一、首先导入一个脚本和一个Dll文件

 

二、分析JsonDataTool工具类


三、实战解析

1、将json格式文件放进Resources文件夹下
 
文本内容如下:
1
[
2
    {
3
        "Id": "1001",
4
        "Name": "天煞镯",
5
        "Icon": "天煞镯",
6
        "InventoryType": "Equip",
7
        "EquipType": "Bracelet",
8
        "Price": "4500",
9
        "StartLevel": "4",
10
        "Quailty": "5",
11
        "Damage": "450",
12
        "Hp": "1000",
13
        "Power": "500",
14
        "Des": "风元素桑德兰王子的武器。桑德兰王子被炎魔拉格纳罗斯偷袭杀死之后,被封印于两个头颅之中,由炎魔手下加尔与加顿男爵保管。"
15
    },
16
    {
17
        "Id": "1002",
18
        "Name": "龙渊翅",
19
        "Icon": "龙渊翅",
20
        "InventoryType": "Equip",
21
        "EquipType": "Wing",
22
        "Price": "6000",
23
        "StartLevel": "4",
24
        "Quailty": "5",
25
        "Damage": "300",
26
        "Hp": "2000",
27
        "Power": "300",
28
        "Des": "恶魔猎人就职的要求之一就是搜寻到一种特定的恶魔,把它作为祭品,这样就将恶魔灵魂的一部份束缚于体内。"
29
    },
30
    {
31
        "Id": "1003",
32
        "Name": "天劫戒",
33
        "Icon": "天劫戒",
34
        "InventoryType": "Equip",
35
        "EquipType": "Ring",
36
        "Price": "3000",
37
        "StartLevel": "4",
38
        "Quailty": "5",
39
        "Damage": "200",
40
        "Hp": "1500",
41
        "Power": "100",
42
        "Des": "太阳之井是血精灵一族的堕落的源泉,而精灵一族原本就被称为“众星之子”。想要吸收太阳之井化身安微娜能量的基尔加丹,被玩家与NPC合力所击败。"
43
    },
44
    {
45
        "Id": "1004",
46
        "Name": "血之魂臂铠",
47
        "Icon": "血之魂臂铠",
48
        "InventoryType": "Equip",
49
        "EquipType": "Cloth",
50
        "Price": "7000",
51
        "StartLevel": "4",
52
        "Quailty": "5",
53
        "Damage": "100",
54
        "Hp": "5000",
55
        "Power": "50",
56
        "Des": "法杖随着达拉然的毁灭而损毁,但武器的碎片落入了克尔苏加德之手,他竭力要修复这一法杖。"
57
    },
58
    {
59
        "Id": "1005",
60
        "Name": "龙颚盔",
61
        "Icon": "龙颚盔",
62
        "InventoryType": "Equip",
63
        "EquipType": "Helm",
64
        "Price": "4000",
65
        "StartLevel": "4",
66
        "Quailty": "5",
67
        "Damage": "350",
68
        "Hp": "3000",
69
        "Power": "150",
70
        "Des": "火焰之王,拉格纳罗斯居住在火焰位面,被黑铁矮人召唤所召唤。他所踏足之地,赤脊山脉因此毁灭,形成了黑石山与熔火之心。"
71
    },
72
    {
73
        "Id": "1006",
74
        "Name": "混沌开天斧",
75
        "Icon": "混沌开天斧",
76
        "InventoryType": "Equip",
77
        "EquipType": "Weapon",
78
        "Price": "7500",
79
        "StartLevel": "3",
80
        "Quailty": "5",
81
        "Damage": "1000",
82
        "Hp": "100",
83
        "Power": "900",
84
        "Des": "在土灵和铁矮人之间爆发的第一次战争中,瓦兰奈尔碎裂了。据信这把武器的残片已在战争中遗失。"
85
    },
86
    {
87
        "Id": "1007",
88
        "Name": "天绝项链",
89
        "Icon": "天绝项链",
90
        "InventoryType": "Equip",
91
        "EquipType": "Necklace",
92
        "Price": "3500",
93
        "StartLevel": "3",
94
        "Quailty": "2",
95
        "Damage": "500",
96
        "Hp": "500",
97
        "Power": "420",
98
        "Des": "凯尔萨斯:“你看,我的收藏中有许多武器。” 背景出处不详。"
99
    },
100
    {
101
        "Id": "1008",
102
        "Name": "天泣靴",
103
        "Icon": "天泣靴",
104
        "InventoryType": "Equip",
105
        "EquipType": "Shoes",
106
        "Price": "6000",
107
        "StartLevel": "3",
108
        "Quailty": "2",
109
        "Damage": "200",
110
        "Hp": "400",
111
        "Power": "120",
112
        "Des": "灵魂收割者的名号是由于这把剑在每杀死一个人之后都会吸取他们的灵魂,加强自己的暗影力量。"
113
    },
114
    {
115
        "Id": "1009",
116
        "Name": "灰烬之靴",
117
        "Icon": "灰烬之靴",
118
        "InventoryType": "Equip",
119
        "EquipType": "Shoes",
120
        "Price": "6000",
121
        "StartLevel": "3",
122
        "Quailty": "2",
123
        "Damage": "200",
124
        "Hp": "400",
125
        "Power": "120",
126
        "Des": "风元素桑德兰王子的武器。桑德兰王子被炎魔拉格纳罗斯偷袭杀死之后,被封印于两个头颅之中,由炎魔手下加尔与加顿男爵保管。"
127
    },
128
    {
129
        "Id": "1010",
130
        "Name": "众神之光",
131
        "Icon": "众神之光",
132
        "InventoryType": "Equip",
133
        "EquipType": "Wing",
134
        "Price": "6000",
135
        "StartLevel": "5",
136
        "Quailty": "2",
137
        "Damage": "300",
138
        "Hp": "2000",
139
        "Power": "300",
140
        "Des": "恶魔猎人就职的要求之一就是搜寻到一种特定的恶魔,把它作为祭品,这样就将恶魔灵魂的一部份束缚于体内。"
141
    },
142
    {
143
        "Id": "1011",
144
        "Name": "精灵戒指",
145
        "Icon": "精灵戒指",
146
        "InventoryType": "Equip",
147
        "EquipType": "Ring",
148
        "Price": "3000",
149
        "StartLevel": "5",
150
        "Quailty": "2",
151
        "Damage": "200",
152
        "Hp": "1500",
153
        "Power": "100",
154
        "Des": "太阳之井是血精灵一族的堕落的源泉,而精灵一族原本就被称为“众星之子”。想要吸收太阳之井化身安微娜能量的基尔加丹,被玩家与NPC合力所击败。"
155
    },
156
    {
157
        "Id": "1012",
158
        "Name": "天衣月舞",
159
        "Icon": "天衣月舞",
160
        "InventoryType": "Equip",
161
        "EquipType": "Cloth",
162
        "Price": "7000",
163
        "StartLevel": "5",
164
        "Quailty": "4",
165
        "Damage": "100",
166
        "Hp": "5000",
167
        "Power": "50",
168
        "Des": "法杖随着达拉然的毁灭而损毁,但武器的碎片落入了克尔苏加德之手,他竭力要修复这一法杖。"
169
    },
170
    {
171
        "Id": "1013",
172
        "Name": "圣光之帽",
173
        "Icon": "圣光之帽",
174
        "InventoryType": "Equip",
175
        "EquipType": "Helm",
176
        "Price": "4000",
177
        "StartLevel": "5",
178
        "Quailty": "4",
179
        "Damage": "350",
180
        "Hp": "3000",
181
        "Power": "150",
182
        "Des": "火焰之王,拉格纳罗斯居住在火焰位面,被黑铁矮人召唤所召唤。他所踏足之地,赤脊山脉因此毁灭,形成了黑石山与熔火之心。"
183
    },
184
    {
185
        "Id": "1014",
186
        "Name": "生命之环",
187
        "Icon": "生命之环",
188
        "InventoryType": "Equip",
189
        "EquipType": "Bracelet",
190
        "Price": "4500",
191
        "StartLevel": "5",
192
        "Quailty": "4",
193
        "Damage": "450",
194
        "Hp": "1000",
195
        "Power": "500",
196
        "Des": "在土灵和铁矮人之间爆发的第一次战争中,瓦兰奈尔碎裂了。据信这把武器的残片已在战争中遗失。"
197
    },
198
    {
199
        "Id": "1015",
200
        "Name": "魔音护魂魔杖",
201
        "Icon": "魔音护魂魔杖",
202
        "InventoryType": "Equip",
203
        "EquipType": "Weapon",
204
        "Price": "7500",
205
        "StartLevel": "5",
206
        "Quailty": "4",
207
        "Damage": "1000",
208
        "Hp": "100",
209
        "Power": "900",
210
        "Des": "凯尔萨斯:“你看,我的收藏中有许多武器。” 背景出处不详。"
211
    },
212
    {
213
        "Id": "1016",
214
        "Name": "死亡挂坠",
215
        "Icon": "死亡挂坠",
216
        "InventoryType": "Equip",
217
        "EquipType": "Necklace",
218
        "Price": "3500",
219
        "StartLevel": "5",
220
        "Quailty": "4",
221
        "Damage": "500",
222
        "Hp": "500",
223
        "Power": "420",
224
        "Des": "灵魂收割者的名号是由于这把剑在每杀死一个人之后都会吸取他们的灵魂,加强自己的暗影力量。"
225
    },
226
    {
227
        "Id": "1017",
228
        "Name": "小体力丹",
229
        "Icon": "小体力丹",
230
        "InventoryType": "Drug",
231
        "Price": "1000",
232
        "ApplyValue": "2000"
233
    },
234
    {
235
        "Id": "1018",
236
        "Name": "大体力丹",
237
        "Icon": "大体力丹",
238
        "InventoryType": "Drug",
239
        "Price": "3000",
240
        "ApplyValue": "5000"
241
    },
242
    {
243
        "Id": "1019",
244
        "Name": "黄金宝箱",
245
        "Icon": "黄金宝箱",
246
        "InventoryType": "Box",
247
        "Price": "10000"
248
    }
249
]

2、我们要新建一个类用来存储JSON文本中所有的键
3、在另一个脚本中解析Json
1
using UnityEngine;
2
using System.Collections;
3
4
public class GM : MonoBehaviour
5
{
6
    //存放了所有的inventory的属性
7
    public static Inventory[] inventory;
8
    const string addressInventory = "data/Inventory"; 
9
    public static bool isFirst = true;
10
11
    void Awake()
12
    {
13
        if (isFirst)
14
        {
15
            isFirst = false;
16
            inventory = JsonDataTool.AddressToClasses<Inventory>(addressInventory);
17
        }
18
    }
19
20
    void Start()
21
    {
22
        foreach (Inventory p in inventory)
23
        {
24
            if (p.Name == "小体力丹") 
25
            {
26
                Debug.Log(p.Id);
27
            }
28
            if (p.Id==1001)
29
            {
30
                Debug.Log(p.Name);
31
            }
32
        }
33
    }
34
}
将脚本挂在场景中
输出如下

原创粉丝点击