【教程】使用 LitJson 处理 Json 数据信息
开发平台:Unity
编程平台:Visual Studio 2017 以上
编程语言:C#
前言
尽管 Unity 提供 JsonUtlity
处理 Json 类数据,但在处理大体量 Json 报文信息上,显得力不从心。于是专精于数据体积的 LitJson 是 Unity 开发者无法拒绝的高效工具包。
一、获取 LitJson 工具包
下载方式01:前往VS菜单栏 “工具 -> NuGet程序包”,搜索 “LitJson”,选择下载量第一即可。
下载方式二:前往 GitHub : LitJson 开源库 选择对应版本下载(默认选择最新)
下载方式三:前往 LitJson 官网下载
二、LitJson 处理 Json 数据模版
{ "FactoryName": "存储一厂", "Time": "", "Message": [{ "Name": "工字钢", "Count": 289 }, { "Name": "H型钢", "Count": 547 }, { "Name": "矩形管", "Count": 245 }]}
如上所示,这是一串应用于工业领域的数据存储的 Json 数据报文。
2.0 获取 Json 报文方式
默认情况下,通过联网获取的 Json 报文以 object
类型传递。当然,有时候这些内容被 string
预处理传递。可以在 服务器 或 本地文件夹下,建立文件存储这些文本。例如 Assets/StreamingAssets/Test/JsonExample.json
。
使用 UnityWebRequest.Get(string url)
或 File.ReadAllText(string path)
等方法阅读内容。
2.1 建立数据存储类与结构体
在 Unity 中使用 Json 数据信息,必然需要建立类或结构体以存储具体的字段、属性。程序上必然离不开构建类。针对 JsonExample.json 的具体报文格式,建立类,如下所示:
Root类:根类(命名不限制)
public class Root
{public string FactoryName { get; set; }public string Time { get; set; }public List <MessageItem > Message { get; set; }
}
MessageItem类:数组数据类(命名不限制,但 Root 类中 Message 命名严格按照 Json 报文中命名)
public class MessageItem
{public string Name { get; set; }public int Count { get; set; }
}
LitJson 通过检索字段或属性命名检索匹配 Json 报文信息。Json 报文传递是什么键名,字段必须是这个键名。故在确认类结构上,须确认 Json 报文结构。
2.2 解析数据至类中存储
var thisClass = LitJson.JsonMapper.toObject<Root>(string jsonSTR);
LitJson 提供 JsonMapper 类方法用于处理 Json 数据,并转存至对应类。如上图所示,将 Json 数据存储至 Root 类中。该类命名 thisClass
。
2.3 获取类数据输出 Json 数据报文
var thisSTR = LitJson.JsonMapper.toJson(thisClass);
一般情况,对 Json 存储无要求的可直接使用 JsonMapper.toJson()
转为 Json 报文。但有时候,为了方便阅读 Debug 信息。需要格式化输出 Json 报文。则需要使用到 JsonWritter
处理。
var thisWritter = new LitJson.JsonWritter()
{PrettyPrint = true,
}LitJson.JsonMapper.toJson(thisClass, thisWritter);
JsonWritter
是服务于 Json 报文格式的类。每次实例须配置 PrettyPrint
(格式化输出)。类似于 out
用法,JsonMapper.toJson
将类 Root
输出至 thisWritter
内,进而存放至 thisWritter.TextWriter
中。
三、推荐网站
BeJson数据类型转换网站
- 优势:
- 提供免费的 Json数据 转 C#实体类 的功能服务。快速、高效处理类构建过程。
- 弊端:
- 对具体数据类型
long
等不常用无法精准识别,须手动调整。
- 对具体数据类型
【教程】使用 LitJson 处理 Json 数据信息相关推荐
- arduino JSON数据信息解析
参数考太极创客的程序代码,将代码风格换成我习惯的用法,并在注释上加上自己的理解 单一对象JSON解析 JSON格式 {"errno":0,"error":&qu ...
- Unity (C#) 使用 LitJson 处理 JSON 数据
相关链接 dll 文件,点击即下载 LitJson 官网 声明命名空间 using LitJson; ps: 直接将 .dll 文件拖入 Unity 的 Assets/Plugins目录中便可以使用了 ...
- 学习太极创客 — ESP8226 (八)JSON 数据通讯 二
视频链接:https://www.bilibili.com/video/BV1L7411c7jw?p=17&vd_source=b91967c499b23106586d7aa35af46413 ...
- 学习太极创客 — ESP8226 (七)JSON 数据通讯 一
视频链接:https://www.bilibili.com/video/BV1L7411c7jw?p=16&vd_source=b91967c499b23106586d7aa35af46413 ...
- 学习太极创客 — ESP8226 (九)JSON 数据通讯 三
视频链接:https://www.bilibili.com/video/BV1L7411c7jw?p=18&vd_source=b91967c499b23106586d7aa35af46413 ...
- android responsebody转json_SpringBoot 项目开发是如何返回 json 数据以及数据封装
本文目录如下: 1. Spring Boot 默认对Json的处理 1.1 创建 User 实体类 1.2 创建Controller类 1.3 测试不同数据类型返回的json 1.4 jackson ...
- Android解析服务器Json数据实例
Json数据信息如下: {"movies": [{"movie": "Avengers","year": 2012,&q ...
- java 获取json的值_Java如何获取JSON数据中的值
场景:在接口自动化场景中,下个接口发送的请求参数,依赖上个接口请求结果中的值.需要将获取值作为全局参数引用. import java.io.File; import java.io.FileInput ...
- Swift语言中如何使用JSON数据教程
原文:Swift语言中如何使用JSON数据教程 这是一篇翻译文章,原文出处:http://www.raywenderlich.com/82706/working-with-json-in-swift- ...
最新文章
- libevent 安装异常
- (译)KVO的内部实现
- QT的QUdpSocket类的使用
- Mining Precision Interface From Query Logs -- 学习笔记(一)
- 小程序 webview 分享_新的一周,分享15个好玩的小程序
- 新浪微博澄清“花钱撤热搜”、“花钱压热搜”等不实传言
- Ssm角色权限后台管理实战开发
- Leetcode每日一题:20.valid-parentheses(有效的括号)
- 深入理解css之float
- 【综述】详解ERNIE-Baidu进化史及应用场景
- iOSRGB常用的色值
- 如何用列表解析式生成 2个小数位 的 python 列表
- 为了入职蚂蚁金服,鬼知道我经历了什么.. 蚂蚁金服架构师面经
- 帆软函数:阿拉伯数字转中文、阿拉伯数字转人民币大写
- win7 IE64位浏览器能上网,ie,搜狗等不能上网 的解决办法
- ios删除字符串第一位_ios-删除字符串中的最后两个字符(Swift 3.0)
- 基于深度强化学习的室内场景目标驱动视觉导航
- fedora8下删除antivir
- IIS的ASP木马怎么上传的
- arduino(4):使用ESP8266,了解下相关芯片生产厂商,安信可的开发板子。