Unity3D_(数据)LitJson创建和解析Json
LitJson github: 传送门
JsonUtility创建和解析Json 传送门
LitJson.dll百度云盘 传送门 密码:p1py
加载LitJson.dll到Unity中
在Assets文件夹下创建一个Plugins文件(文件名不得有错),把LitJson.dll放进去
新建一个LitJson_Gary.cs脚本,挂在到GameObject上
第一种使用LitJson创建和解析Json
好处:逻辑清晰,适用于稍微复杂的Json类型,适用于层级复杂情况
坏处:需要单独写类,写的代码稍微多一些
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using LitJson;
- public class Hero
- {
- public string name;
- public int power;
- }
- public class Heros
- {
- public Hero[] heros;
- }
- public class LitJson_Gary : MonoBehaviour {
- // Use this for initialization
- void Start () {
- func1();
- }
- void func1()
- {
- //创建Json
- //{'heros':[{'name':'Gary','power':90},{'name':'Gary2','power':80}]}
- Hero hero1 = new Hero();
- hero1.name = "Gary";
- hero1.power = ;
- Hero hero2 = new Hero();
- hero2.name = "Gary2";
- hero2.power = ;
- Heros heros = new Heros();
- heros.heros = new Hero[] {hero1,hero2};
- string jsonStr = JsonMapper.ToJson(heros);
- Debug.Log(jsonStr);
- //解析Json
- Heros newHeros = JsonMapper.ToObject<Heros>(jsonStr);
- Debug.Log(newHeros.heros[].name);
- }
- }
LitJson_Gary.cs
创建Json类型
- public class Hero
- {
- public string name;
- public int power;
- }
- public class Heros
- {
- public Hero[] heros;
- }
创建Json数据
{'heros':[{'name':'Gary','power':90},{'name':'Gary2','power':80}]}
- Hero hero1 = new Hero();
- hero1.name = "Gary";
- hero1.power = ;
- Hero hero2 = new Hero();
- hero2.name = "Gary2";
- hero2.power = ;
- Heros heros = new Heros();
- heros.heros = new Hero[] {hero1,hero2};
- string jsonStr = JsonMapper.ToJson(heros);
- Debug.Log(jsonStr);
解析Json
- Heros newHeros = JsonMapper.ToObject<Heros>(jsonStr);
- Debug.Log(newHeros.heros[].name);
第二种使用LitJson创建和解析Json
好处:代码简单,适用于层级简单情况
坏处:当层级比较复杂的时候,比较容易出错
创建Json
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using LitJson;
- public class Hero
- {
- public string name;
- public int power;
- }
- public class Heros
- {
- public Hero[] heros;
- }
- public class LitJson_Gary : MonoBehaviour {
- // Use this for initialization
- void Start () {
- fun2();
- }
- void fun2()
- {
- //创建Json
- //简单类型:{'name':'Gary','power':90}
- JsonData demo = new JsonData();
- //demo.SetJsonType(JsonType.Object);
- demo["name"] = "Gary";
- demo["power"] = ;
- Debug.Log(demo.ToJson());
- //复杂类型:{'heros':[{'name':'Gary','power':90},{'name':'Gary2','power':80}]}
- JsonData demos = new JsonData(); //{}
- JsonData demo1 = new JsonData();
- demo1["name"] = "Gary1";
- demo1["power"] = ;
- JsonData demo2 = new JsonData();
- demo2["name"] = "Gary2";
- demo2["power"] = ;
- demos.SetJsonType(JsonType.Array);
- demos.Add(demo1);
- demos.Add(demo2);
- Debug.Log(demos.ToJson());
- }
- void fun3()
- {
- string jsonStr = "{'heros':[{'name':'Gary','power':90},{'name':'Gary2','power':80}]}";
- JsonData demos = JsonMapper.ToObject(jsonStr);
- JsonData heros = demos["heros"]; //[]
- //heros[1]["name"]
- foreach(JsonData heroJd in heros)
- {
- Debug.Log(heroJd["name"].ToString());
- Debug.Log((int)heroJd["power"]);
- }
- }
- }
LitJson_Gary.cs
解析Json
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using LitJson;
- public class Hero
- {
- public string name;
- public int power;
- }
- public class Heros
- {
- public Hero[] heros;
- }
- public class LitJson_Gary : MonoBehaviour {
- // Use this for initialization
- void Start () {
- fun3();
- }
- //解析Json
- void fun3()
- {
- string jsonStr = "{'heros':[{'name':'Gary','power':90},{'name':'Gary2','power':80}]}";
- JsonData demos = JsonMapper.ToObject(jsonStr);
- JsonData heros = demos["heros"]; //[]
- //heros[1]["name"]
- foreach(JsonData heroJd in heros)
- {
- Debug.Log(heroJd["name"].ToString());
- Debug.Log((int)heroJd["power"]);
- }
- }
- }
LitJson_Gary.cs
Unity3D_(数据)LitJson创建和解析Json的更多相关文章
- Unity3D_(数据)JsonUtility创建和解析Json
Json 百度百科:传送门 LitJson创建和解析Json 传送门 Json数据解析在Unity3d中的应用 传送门 一.使用JsonUnity创建Json using System.Collect ...
- Java创建和解析Json数据方法(三)——json-lib包的使用
(三)json-lib包的使用 这篇笔记主要介绍json-lib包的创建和解析json数据的方式,主要是的JSONObject.JSONArray和Java对象:beans, maps ...
- Java创建和解析Json数据方法(四)——json-lib包的使用
(四)json-lib包的使用 既然json-lib包比org.json包重量级,那么json-lib包肯定有很多org.json包没有的类和方法,这篇笔记简单记录json-lib包中 ...
- Java创建和解析Json数据方法(二)——org.json包的使用
(二)org.json包的使用 1.简介 工具包org.json.jar,是一个轻量级的,JAVA下的json构造和解析工具包,它还包含JSON与XML, HTTP headers, Cookie ...
- Java创建和解析Json数据方法——org.json包的使用(转)
org.json包的使用 1.简介 工具包org.json.jar,是一个轻量级的,JAVA下的json构造和解析工具包,它还包含JSON与XML, HTTP headers, Cookies, ...
- Java创建和解析Json数据方法(五)——Google Gson包的使用
(五)Google Gson包的使用 1.简介 Gson包中,使用最多的是Gson类的toJson()和fromJson()方法: ①toJson():将java对象转化为json数据 ...
- C语言创建及解析Json的使用法则
参考原文:http://blog.csdn.net/xukai871105/article/details/33013455 JSON(JavaScriptObject Notation)是一种轻量级 ...
- iOS 使用SBJSON创建和解析JSON
原文地址:http://blog.csdn.net/gf771115/article/details/7718403 //创建JSON NSDictionary *dictonary = [[NSMu ...
- java创建和解析json对象
最近工作遇到了 json 解析的相关需求,整理下 JSONObject 相关操作. 文中使用的例子都是基于阿里巴巴的产品 FastJSON ,涉及到的包有: import com.alibaba.fa ...
随机推荐
- 使用Visual Studio 2019--调试汇编32位代码的详细步骤
声明:本文使用32位masm,代码与16位,64位不同 ------------------------------------------------------------------------ ...
- p24 map 之 golang基础
Go语言中提供的映射关系容器为map,其内部使用散列表(hash)实现. 参考文档 https://www.liwenzhou.com/posts/Go/08_map/ package main im ...
- 06: zabbix常见面试题
1.1 zabbix架构 1.zabbix理论 1)Zabbix是一个企业级的.开源的.分布式的监控套件,Zabbix可以监控网络和服务的监控状况. 2)Zabbix利用灵活的告警机制,允许用户对事件 ...
- mysql索引失效的情况
1.WHERE字句的查询条件里有不等于号(如:WHERE column!=...),MYSQL将无法使用索引: 2.WHERE字句的查询条件里使用了函数的列(如:WHERE DAY(column)=. ...
- @Resource与@Autowired注解的区别踩坑者入
一.写本博文的原因 有些童鞋搞不为什么要用@Resource或者@Autowired,咱们一起研究下 @Resource默认按照名称方式进行bean匹配,@Autowired默认按照类型方式进行bea ...
- zookeeperAPI的常用方法
zookeeper支持三种部署方式: 1 单机 2 集群 3 伪集群 删除节点 zkClient.delete(path);
- 剑指offer-孩子们的游戏(圆圈中最后剩下的数)-知识迁移能力-python
题目描述 每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此.HF作为牛客的资深元老,自然也准备了一些小游戏.其中,有个游戏是这样的:首先,让小朋友们围成一个大圈.然后,他随机指 ...
- try catch和finally
在C#中这三个关键字用于处理异常. 这三个关键字try是必定要用的,要不然就失去了意义.然后catch和finally可以不用但是要注意遵循原则. 存在一个或多个catch的时可以不用finally, ...
- O009、KVM 网络虚拟化基础
参考https://www.cnblogs.com/CloudMan6/p/5289590.html 网络虚拟化是虚拟化技术中最复杂的部分,学习难度最大. 但因为网络是虚拟化中非常重要的资源, ...
- java实现spark常用算子之map
import org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaRDD;import org.apache.spark.a ...