开发平台: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 数据信息相关推荐

  1. arduino JSON数据信息解析

    参数考太极创客的程序代码,将代码风格换成我习惯的用法,并在注释上加上自己的理解 单一对象JSON解析 JSON格式 {"errno":0,"error":&qu ...

  2. Unity (C#) 使用 LitJson 处理 JSON 数据

    相关链接 dll 文件,点击即下载 LitJson 官网 声明命名空间 using LitJson; ps: 直接将 .dll 文件拖入 Unity 的 Assets/Plugins目录中便可以使用了 ...

  3. 学习太极创客 — ESP8226 (八)JSON 数据通讯 二

    视频链接:https://www.bilibili.com/video/BV1L7411c7jw?p=17&vd_source=b91967c499b23106586d7aa35af46413 ...

  4. 学习太极创客 — ESP8226 (七)JSON 数据通讯 一

    视频链接:https://www.bilibili.com/video/BV1L7411c7jw?p=16&vd_source=b91967c499b23106586d7aa35af46413 ...

  5. 学习太极创客 — ESP8226 (九)JSON 数据通讯 三

    视频链接:https://www.bilibili.com/video/BV1L7411c7jw?p=18&vd_source=b91967c499b23106586d7aa35af46413 ...

  6. android responsebody转json_SpringBoot 项目开发是如何返回 json 数据以及数据封装

    本文目录如下: 1. Spring Boot 默认对Json的处理 1.1 创建 User 实体类 1.2 创建Controller类 1.3 测试不同数据类型返回的json 1.4 jackson ...

  7. Android解析服务器Json数据实例

    Json数据信息如下: {"movies": [{"movie": "Avengers","year": 2012,&q ...

  8. java 获取json的值_Java如何获取JSON数据中的值

    场景:在接口自动化场景中,下个接口发送的请求参数,依赖上个接口请求结果中的值.需要将获取值作为全局参数引用. import java.io.File; import java.io.FileInput ...

  9. Swift语言中如何使用JSON数据教程

    原文:Swift语言中如何使用JSON数据教程 这是一篇翻译文章,原文出处:http://www.raywenderlich.com/82706/working-with-json-in-swift- ...

最新文章

  1. libevent 安装异常
  2. (译)KVO的内部实现
  3. QT的QUdpSocket类的使用
  4. Mining Precision Interface From Query Logs -- 学习笔记(一)
  5. 小程序 webview 分享_新的一周,分享15个好玩的小程序
  6. 新浪微博澄清“花钱撤热搜”、“花钱压热搜”等不实传言
  7. Ssm角色权限后台管理实战开发
  8. Leetcode每日一题:20.valid-parentheses(有效的括号)
  9. 深入理解css之float
  10. 【综述】详解ERNIE-Baidu进化史及应用场景
  11. iOSRGB常用的色值
  12. 如何用列表解析式生成 2个小数位 的 python 列表
  13. 为了入职蚂蚁金服,鬼知道我经历了什么.. 蚂蚁金服架构师面经
  14. 帆软函数:阿拉伯数字转中文、阿拉伯数字转人民币大写
  15. win7 IE64位浏览器能上网,ie,搜狗等不能上网 的解决办法
  16. ios删除字符串第一位_ios-删除字符串中的最后两个字符(Swift 3.0)
  17. 基于深度强化学习的室内场景目标驱动视觉导航
  18. fedora8下删除antivir
  19. IIS的ASP木马怎么上传的
  20. arduino(4):使用ESP8266,了解下相关芯片生产厂商,安信可的开发板子。

热门文章

  1. 二进制表示负数的方法:“ 补数 ”
  2. 一篇文章带你了解Nodejs
  3. 部署开源LWM2M服务器 leshan
  4. cassandra 官方wiki
  5. 三十、非谓语动词_作状语
  6. jdbc localhost mysql_JDBC连接MySQL
  7. iframe的替代品
  8. 什么是API?(详细解说)
  9. c++栈的基础应用,括号匹配、逆波兰表达式求值
  10. Python学习笔记1环境搭建+Numpy