《Unity系列》Json文件格式的解析——初级教程
Json作为轻量级的数据交换格式,被广泛应用于网络数据传输中。相关的解析工具层出不穷,一般掌握一个工具的应用其他的相应工具就能立马学会。
这里以C#中的LitJson为例给大家示范一下解析工具的用法。当然在示范之前有必要说明一下Json的数据格式是怎么回事,才好理解相应的代码。
Json格式必须遵循以下原则,不得违反——
一、必须以一个对象或者数组作为根节点;
例如:
以一个对象作为根节点 {"xx":"xx","xx":"xx","xx":{..},"xx":[]....}
以一个数组作为根节点 [{},{},...]
二、使用{}表示对象,[]表示数组,中间的属性使用键值对的方式;
三、键值对的键必须使用双引号“”包围住;
四、键值对中的值可以是对象,数组,数字,字符串,true/false,null(空值);
遵循以上要点,下面开始Jason的解析工作:
第一步:在vs中首先添加LitJson引用(如下图),使用的时候导入命名空间:using LitJson;

第二步:获取要解析的文件,并书写解析类
例如格式
[
{"id":1,"name":"第一式","damage":50},
{"id":2,"name":"第二式","damage":80},
{"id":3,"name":"第三式","damage":100}
]
解析类如下写法:
public class Skill
{
public int id { set; get; }
public string name { set; get; }
public int damage { set; get; }
public override string ToString()
{
return string.Format("id:{0};name:{1};damage:{2}", id, name, damage);
}
}
注意事项:解析的属性必须与json中的属性完全一致,否则无法获取数据;此处为了获得输出结果重写tostring方法。
第三步:使用LitJson进行解析
//将解析的文本读入一个字符串,如果是unity也是一样
string str = File.ReadAllText("Skill.Json");
//要解析的是一个Skill类型的对象数组,使用泛型解析
Skill[] skillList = JsonMapper.ToObject<Skill[]>(str);
//通过foreach遍历数组中的Skill元素并打印输出
foreach (Skill item in skillList)
{
Console.WriteLine(item);
}
《Unity系列》Json文件格式的解析——初级教程的更多相关文章
- 在Unity中json文件的解析方式
using System.Collections; using System.Collections.Generic; using UnityEngine; using LitJson; using ...
- Unity的Json解析<二>–写Json文件
本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接:http://blog.csdn.net/cartzhang/article/details/50378805 作者:car ...
- Unity的Json解析<一>--读取Json文件
本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接:http://blog.csdn.net/cartzhang/article/details/50373558 作者:car ...
- Android系列---JSON数据解析
您可以通过点击 右下角 的按钮 来对文章内容作出评价, 也可以通过左下方的 关注按钮 来关注我的博客的最新动态. 如果文章内容对您有帮助, 不要忘记点击右下角的 推荐按钮 来支持一下哦 如果您对文章内 ...
- 小白学习Spark系列五:scala解析多级json格式字符串
一.背景 处理json格式的字符串,key值一定为String类型,但value不确定是什么类型,也可能嵌套json字符串,以下是使用 JSON.parseFull 来解析多层json. 二.实例代码 ...
- Unity性能优化(3)-官方教程Optimizing garbage collection in Unity games翻译
本文是Unity官方教程,性能优化系列的第三篇<Optimizing garbage collection in Unity games>的翻译. 相关文章: Unity性能优化(1)-官 ...
- Unity性能优化(4)-官方教程Optimizing graphics rendering in Unity games翻译
本文是Unity官方教程,性能优化系列的第四篇<Optimizing graphics rendering in Unity games>的翻译. 相关文章: Unity性能优化(1)-官 ...
- Unity性能优化(2)-官方教程Diagnosing performance problems using the Profiler window翻译
本文是Unity官方教程,性能优化系列的第二篇<Diagnosing performance problems using the Profiler window>的简单翻译. 相关文章: ...
- Unity性能优化(1)-官方教程The Profiler window翻译
本文是Unity官方教程,性能优化系列的第一篇<The Profiler window>的简单翻译. 相关文章: Unity性能优化(1)-官方教程The Profiler window翻 ...
随机推荐
- Launch VINS-Mono with Realsense D435i in RTAB-Map
Preparation: Remap topic from D435i to rtabmap Feed the odometry to rtabmap In the rqt_graph of vins ...
- luoguP4396 [AHOI2013]作业
https://www.luogu.org/problemnew/show/P4396 简单的莫队+树状数组,但博主被卡常了,不保证代码在任何时候都能AC #include <bits/stdc ...
- 洛谷P2754 [CTSC1999]家园(最大流)
传送门 这题思路太强了……大佬们怎么想到的……我这菜鸡根本想不出来…… 先判断是否能到达,对每一艘飞船能到的地方用并查集合并一下,最后判断一下是否连通 然后考虑几天怎么判断,我们可以枚举. 每一个点表 ...
- 整理LVS架构压力测试工作
首先,测试环境在模拟环境下进行. 测试环境:1director(apache2.2) + 1realserver(jboss4.2.3GA)+1databaseserver(oracle9i) ...
- 1. C/C++项目一
需求: 使用C语言封装string 字符串,实现字符串的增.删.改.查等API函数. 要求: 不能使用 string 库函数,所有库函数必须自己手动实现. [项目实现] myString.h 代码如下 ...
- 修改stl::set相关源码,提供有序属性值的查找接口
普通的stl::set,查找时只能传入key_type. 不能使用属性值查找. 例如: /* an employee record holds its ID, name and age */ clas ...
- CentOS7.3托管磁盘虚拟机扩容数据磁盘
随着托管磁盘的上线,虚拟机支持的单块磁盘容量从1TB到达了4TB,客户对单块磁盘容量的需求量也会变的很大. 操作之前需要重点查看: 由于扩容磁盘的操作非同小可,一旦哪一步出现问题,就会导致分区损坏,数 ...
- WinForm中如何实现在容器控件中嵌入form窗体(panel与子窗体)
今天在做项目时候遇到一个问题,窗体分为左右两部分,要求在左边栏点击按钮时,右边动态加载窗体最后想到用panel实现,经历几次失败,并查找资料后,终于搞定 说明:如果多次切换需加入 panel.clea ...
- 扩展jQuery---选中指定索引的文本
<script type="text/javascript"> //1.扩展jQuery $.fn.selectRange = function (start, end ...
- Takari Extensions for Apache Maven (TEAM)
http://takari.io/book/index.html TEAM stands for the Takari Extensions for Apache Maven. TEAM is a c ...