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 ...
随机推荐
- c++学习笔记之类和对象(一、类定义)
类和对象是 C++ 的重要特性,它们使得 C++ 成为面向对象的编程语言. 类是创建对象的模板,一个类可以创建多个对象,每个对象都是类类型的一个变量:创建对象的过程也叫类的实例化.每个对象都是类的一个 ...
- Linux下用OTL操作MySql(包含自己封装的类库及演示样例代码下载)
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/ClamReason/article/details/23971805 首先重点推荐介绍otl介绍及使 ...
- linux centos 安装jdk
1.先查看是否已经安装的有java java -version,如果有需要卸载的直接卸载 rpm -qa | grep java 下面这几个可以删除 java-1.7.0-ope ...
- OpenSSL(2)创建私有证书颁发机构
如果想要建立自己的CA, OpenSSL已经包含了所有你需要的东西.所有的操作都通过纯命令行执行,虽然不那么友好,整个过程也比较长,但是这可以让你去思考每个细节. 我建议自己创建一套私有的 CA主要是 ...
- oracle创建表前校验是否存在
创建表前检查是否存在,并删除 --检查是否存在此表,存在则删除 declare num number; begin select count(1) into num from user_tables ...
- Delphi 变量的作用域
- 1、linux基础优化
1.添加一个用户 [root@oldboy ~]# useradd oldboy [root@oldboy ~]# id oldboy uid=500(oldboy) gid=500 (oldboy) ...
- centos7 Keepalived + Haproxy + MySQL pxc5.6
拓扑图 应用通过 VIP 连接到 Haproxy,Haproxy 通过http代理分发请求到后端 3 台 MySQL pxc. Keepalived 可以有效防止 Haproxy 单点故障. MySQ ...
- 面试复习题(一)Java系列
(根据自己的理解和根据黑马资料总结—意见不统一我会写上自己的理解) 一.Java面向对象 1.面向对象都有哪些特性以及你对这些特性的理解 继承.封装.多态.(抽象) 2.public,private, ...
- particlesjs
今天发现一个粒子动画的插件下个笔记做个备用: <!DOCTYPE html> <html lang="en"> <head> <meta ...