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. md5sum、tailf命令

    一.md5sum:计算和校验文件的md5值 语法       md5sum [选项] ... [文件] ... 描述       打印或检查MD5(128位)校验和.没有FILE或FILE为      ...

  2. idea 设置自动生成注释

    idea新建类注释规则 /** @ProjectName: ${PROJECT_NAME} @Package: ${PACKAGE_NAME} @ClassName: ${NAME} @Descrip ...

  3. 比较接口:Comparable和Comparator

    Comparable和Comparator是两个用于定义对象之间比较规则的接口. 一.public interface Comparator<T> Comparator接口中有两个方法(不 ...

  4. VMware中centos7访问外网配置

    1.配置虚拟机网络适配器,选择NAT模式 2.在编辑->虚拟机网络编辑器->更改设置 选择目前使用的网卡 3.通过ifconfig查看网卡配置 4.编辑网络配置对应上面网卡名称ens33 ...

  5. C++ 友元(friend关键字)、类中的重载、操作符重载(operator关键字)

    C++ 中友元的用法: 1.在类中使用friend关键字声明 2.类的友元可以是其它类或者具体函数 3.友元不是类的一部分 4.友元不受类中访问级别的限制 5.友元可以直接访问具体类中的所有成员. 友 ...

  6. JS基础_强制类型转换-Boolean

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  7. Delphi 子界类型

  8. python-迭代器与生成器2

    python-迭代器与生成器2 def fib(max): n,a,b=0,0,1 while n<max: #print(b) yield b a,b=b,a+b #t=(b,a+b) 是一个 ...

  9. Linux驱动开发之LED驱动

    首先讲下字符设备控制技术 : 大部分驱动程序除了需要提供读写设备的能力外,还需要具备控制设备的能力.比如: 改变波特率. 在用户空间,使用ioctl系统调用来控制设备,原型如下:int ioctl(i ...

  10. RAID原理详解

    RAID 0(stripe,条带化存储):在RAID级别中最高的存储性能. 原理:是把连续的数据分散到多个磁盘上存取,系统有数据请求就可以被多个磁盘并行的执行,每个磁盘执行属于他自己的那部分数据请求. ...