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. c++学习笔记之类和对象(一、类定义)

    类和对象是 C++ 的重要特性,它们使得 C++ 成为面向对象的编程语言. 类是创建对象的模板,一个类可以创建多个对象,每个对象都是类类型的一个变量:创建对象的过程也叫类的实例化.每个对象都是类的一个 ...

  2. Linux下用OTL操作MySql(包含自己封装的类库及演示样例代码下载)

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/ClamReason/article/details/23971805 首先重点推荐介绍otl介绍及使 ...

  3. linux centos 安装jdk

    1.先查看是否已经安装的有java java -version,如果有需要卸载的直接卸载      rpm -qa | grep java 下面这几个可以删除       java-1.7.0-ope ...

  4. OpenSSL(2)创建私有证书颁发机构

    如果想要建立自己的CA, OpenSSL已经包含了所有你需要的东西.所有的操作都通过纯命令行执行,虽然不那么友好,整个过程也比较长,但是这可以让你去思考每个细节. 我建议自己创建一套私有的 CA主要是 ...

  5. oracle创建表前校验是否存在

    创建表前检查是否存在,并删除 --检查是否存在此表,存在则删除 declare num number; begin select count(1) into num from user_tables ...

  6. Delphi 变量的作用域

  7. 1、linux基础优化

    1.添加一个用户 [root@oldboy ~]# useradd oldboy [root@oldboy ~]# id oldboy uid=500(oldboy) gid=500 (oldboy) ...

  8. centos7 Keepalived + Haproxy + MySQL pxc5.6

    拓扑图 应用通过 VIP 连接到 Haproxy,Haproxy 通过http代理分发请求到后端 3 台 MySQL pxc. Keepalived 可以有效防止 Haproxy 单点故障. MySQ ...

  9. 面试复习题(一)Java系列

    (根据自己的理解和根据黑马资料总结—意见不统一我会写上自己的理解) 一.Java面向对象 1.面向对象都有哪些特性以及你对这些特性的理解 继承.封装.多态.(抽象) 2.public,private, ...

  10. particlesjs

    今天发现一个粒子动画的插件下个笔记做个备用: <!DOCTYPE html> <html lang="en"> <head> <meta ...