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的更多相关文章

  1. Unity3D_(数据)JsonUtility创建和解析Json

    Json 百度百科:传送门 LitJson创建和解析Json 传送门 Json数据解析在Unity3d中的应用 传送门 一.使用JsonUnity创建Json using System.Collect ...

  2. Java创建和解析Json数据方法(三)——json-lib包的使用

    (三)json-lib包的使用         这篇笔记主要介绍json-lib包的创建和解析json数据的方式,主要是的JSONObject.JSONArray和Java对象:beans, maps ...

  3. Java创建和解析Json数据方法(四)——json-lib包的使用

    (四)json-lib包的使用         既然json-lib包比org.json包重量级,那么json-lib包肯定有很多org.json包没有的类和方法,这篇笔记简单记录json-lib包中 ...

  4. Java创建和解析Json数据方法(二)——org.json包的使用

    (二)org.json包的使用 1.简介   工具包org.json.jar,是一个轻量级的,JAVA下的json构造和解析工具包,它还包含JSON与XML, HTTP headers, Cookie ...

  5. Java创建和解析Json数据方法——org.json包的使用(转)

    org.json包的使用 1.简介   工具包org.json.jar,是一个轻量级的,JAVA下的json构造和解析工具包,它还包含JSON与XML, HTTP headers, Cookies, ...

  6. Java创建和解析Json数据方法(五)——Google Gson包的使用

    (五)Google Gson包的使用 1.简介 Gson包中,使用最多的是Gson类的toJson()和fromJson()方法:         ①toJson():将java对象转化为json数据 ...

  7. C语言创建及解析Json的使用法则

    参考原文:http://blog.csdn.net/xukai871105/article/details/33013455 JSON(JavaScriptObject Notation)是一种轻量级 ...

  8. iOS 使用SBJSON创建和解析JSON

    原文地址:http://blog.csdn.net/gf771115/article/details/7718403 //创建JSON NSDictionary *dictonary = [[NSMu ...

  9. java创建和解析json对象

    最近工作遇到了 json 解析的相关需求,整理下 JSONObject 相关操作. 文中使用的例子都是基于阿里巴巴的产品 FastJSON ,涉及到的包有: import com.alibaba.fa ...

随机推荐

  1. 学习django: 庄园漫步

    最近在阅读django的资料. 发现一个系列写得很好. <被解放的姜戈> 作者:Vamei     出处:http://www.cnblogs.com/vame 感谢大神指路呀~

  2. Python中的xrld模块

    一. 什么是xrld模块 python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是写excel的库. 二. 使用介绍 . empty(空的), number, ...

  3. leecode100热题 HOT 100(2)

    # 题名 题解 通过率 难度 出现频率     142 环形链表 II       43.3% 中等     146 LRU缓存机制       43.3% 中等     148 排序链表       ...

  4. mysql中case when then end的含义和用法

    参见这篇博客:https://blog.csdn.net/rongtaoup/article/details/82183743 case when then else end 语句用于查询满足多种条件 ...

  5. Vue开发——实现吸顶效果

    因为项目需求,最近开始转到微信公众号开发,接触到了Vue框架,这个效果的实现虽说是基于Vue框架下实现的,但是同样也可以借鉴到其他地方,原理都是一样的. 进入正题,先看下效果图: 其实js做这个效果还 ...

  6. mui在tab选项卡中echarts图表不能动态随页面变化大小 只能固定大小

    在mui tab选项卡中一直都不能让echarts动态变化大小 只能固定大小来展示图表,网上说的window.onresize = mycharts.resize;方法根本就没有效果,后面在https ...

  7. QString与QByteArray互相转换的方法

    本文转载自http://blog.csdn.net/daa20/article/details/51674753 // QString转QByteArray方法 //Qt5.3.2 QString s ...

  8. 20199319《Linux内核原理与分析》第十二周作业

    SET-UID程序漏洞实验 一.实验简介 Set-UID是Unix系统中的一个重要的安全机制.当一个Set-UID程序运行的时候,它被假设为具有拥有者的权限.例如,如果程序的拥有者是root,那么任何 ...

  9. shell 实用脚本2

    脚本功能 拷贝文件夹 及 子文件夹内文件  到 对应的 文件结构下 ,且拷贝前先进行备份 #!/bin/sh #create by lizr -- #脚本功能 #覆盖文件前先备份 cfsuffix=$ ...

  10. label smooth

    图像分类的一个trick,推导可参考这位博主https://leimao.github.io/blog/Label-Smoothing/ 知乎上的讨论https://www.zhihu.com/que ...