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. MySQL 中 savepoint 的使用

     介绍 savepoint 结点名; # 设置保存点,并和rollback结合使用,实现回滚到指定保存点 rollback to 结点名; # 回滚到指定点 样例演示 USE human; ; sta ...

  2. Robot Framework(三)项目实践出现的问题以及解决方法

    导航: 1.元素定位失败 2.系统自带的确认弹窗 3.ElementNotVisibleException: Message: element not visible 1.元素定位失败(使用frame ...

  3. 基于EPICS实现西门子S7通信

    (1)       EPICS官网下载Demo并复制文件到指定位置 (2)       创建Modules文件夹,wget https://epics.anl.gov/download/modules ...

  4. git取消操作命令

    1,移除git add . 的内容 git reset HEAD 2,移除git commit 的内容(commit_A是文件名) git rebase -i commit_A

  5. sqlalchemy.exc.InternalError: (pymysql.err.InternalError) (1091, "Can't DROP 'users_ibfk_1'; check that column/key exists") [SQL: ALTER TABLE users DROP FOREIGN KEY users_ibfk_1]

    flask 迁移数据库报错 报错: sqlalchemy.exc.InternalError: (pymysql.err.InternalError) (1091, "Can't DROP ...

  6. 正则替换replace中$1的用法

    一.repalce定义 用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串. 1 2 3 4 5 stringObject.replace(regexp/substr,repla ...

  7. 两个实体类 复制 copy 工具类

    import java.lang.reflect.Field; import java.lang.reflect.Method; import java.util.Date; public class ...

  8. Hbase1.4.9的安装

    HBase介绍 HBase – Hadoop Database,是一个高可靠性.高性能.面向列.可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群. HB ...

  9. linux下如何查询jdk的安装路径

    首先这个问题困扰了我很久,由于是新装的系统还不熟悉,配置java环境变量时很头疼,找不到JDK位置,还好google一波,发现了这个方法. 首先确保安装了JDK java -version java ...

  10. SQL SERVER 2012安装配置说明(多图详解)

    1. 优先安装软件 1. net framework3.5. 2. 在安装SQL SERVER 2012前需要3.5的支持.在WIN 2012系统可以在系统管理的添加角色和功能中安装,如下将[.NET ...