《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翻 ...
随机推荐
- 大数据处理框架之Strom:事务
环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk1.8 storm-0.9 apache-flume-1.6.0 ...
- html->head->body
ps:大师兄的博客链接http://www.imdsx.cn/ http://ui.imdsx.cn/html/ html 相当于一个人 css 相当于为这个人穿上漂亮的衣服,化妆 js 相当于 ...
- PC站与H5移动站最佳适配方案
HTML5是目前HTML的最屌版本,同时也是建设移动站的最佳技术.百度适时推出PC站与H5移动站的最佳适配方案,对站长而言实在是久旱逢甘霖.详情如下: PC站与H5移动站最佳适配方案 pc端: 在pc ...
- sqlalchemy orm数据类型验证方法比较
1.在定义ORM模型时校验 sqlalchemy提供validates函数支持对字段的校验 from sqlalchemy.orm import validates class EmailAddres ...
- Maven学习笔记(二)—— 整合SSH框架
一.知识点准备 1.1 什么是依赖传递? 我们只添加一个struts2-core的依赖,结果会发现所有关于struts2的依赖都进来了. 因为我们的项目依赖struts2-core-2.3.24.ja ...
- poj3417 Network 树上差分+LCA
题目传送门 题目大意:给出一棵树,再给出m条非树边,先割掉一条树边,再割掉一条非树边,问有几种割法,使图变成两部分. 思路:每一条 非树边会和一部分的树边形成一个环,分三种情况: 对于那些没有形成环的 ...
- window7下karma 报 The header content contains invalid characters BUG
打开你的依赖node_modules\karma\node_modules\connect\lib\patch.js 将里面的setHeader方法改成下面这样,干掉序列化日期时出现的中文 res.s ...
- springboot(三)-使用JSP
Springboot的默认视图支持是Thymeleaf.这里先不谈,这么优秀的框架怎么可能不能使用JSP呢?不允许的. 那么需要添加对jsp的支持. pom.xml 在pom.xml文件中添加依赖 & ...
- linux命令eval的用法
[转自]http://blog.chinaunix.net/uid-21411227-id-1826706.html 1. eval command-line 其中command-line是在终端上键 ...
- Oracle PLSQL INDEX BY Binary_Integer 测试
[转自] http://blog.chinaunix.net/uid-14669803-id-2921539.html DECLARE TYPE t_list_1 IS TABLE OF VARCHA ...