一直比较钟情于json,用来做数据交互,堪称完美!下面简单说一下unity使用C#脚本如何解析json数据吧。

一、写解析类,借助于JsonUtility.FromJson

直接给个例子吧

1.json文件testJson.json内容,存储位置/Users/lpp/Downloads/testJson.json

{
"name":"小明",
"age":20,
"interests":["sing","run"]
}

2.c#解析类ModelTest.cs

[System.Serializable]
public class ModelTest
{
public string name;
public int age;
public string[] interests;
}

3.测试脚本

using UnityEngine;
using System.IO;
using System.Text; public class JsonTest : MonoBehaviour { // Use this for initialization
void Start () { string jsonTest = File.ReadAllText("/Users/lpp/Downloads/testJson.json", Encoding.UTF8);
ModelTest obj = JsonUtility.FromJson<ModelTest>(jsonTest);
Debug.Log(obj.name);
Debug.Log(obj.age);
foreach (var inter in obj.interests)
{
Debug.Log(inter);
}
} // Update is called once per frame
void Update () { }
}

4.输出

二、使用Newtonsoft插件,无需解析类

网上下一个Newtonsoft.Json.dll,拖到Assets下某个位置,

上面同一个json,不再需要写解析类了,解析方式如下:
using UnityEngine;
using System.IO;
using System.Text;
using Newtonsoft.Json.Linq; public class JsonTest : MonoBehaviour { // Use this for initialization
void Start () { string json = File.ReadAllText("/Users/lpp/Downloads/testJson.json", Encoding.UTF8);
JObject obj = JObject.Parse(json); Debug.Log(obj["name"].ToString());
Debug.Log(obj["age"].ToString()); JArray ints = (JArray)obj["interests"]; foreach (var inter in ints)
{
Debug.Log(inter);
}
} }

  输出同样的内容。

 

unity解析json的两种方式的更多相关文章

  1. C#解析json的两种方式

    C#中Json转换主要使用的几种方法! 这篇主要介绍2.4.第三种方法使用的比较局限,所以我没有深入学习. 第二种方法 我使用比较多的方式,这个方法是.NET内置的,使用起来比较方便 A.利用seri ...

  2. c#操作json的两种方式

    总结一下C#操作json的两种方式,都是将对象和json格式相转. 1.JavaScriptSerializer,继承自System.Web.Script.Serialization private ...

  3. Ajax中解析Json的两种方法

    eval(); //此方法不推荐 JSON.parse(); //推荐方法 一.两种方法的区别 我们先初始化一个json格式的对象: var jsonDate = '{ "name" ...

  4. 解析JSON的两种方法eval()和JSON.parse()

    解析JSON 一种方法是使用eval函数. var dataObj = eval("("+json+")"); 必须把文本包围在括号中,这样才能避免语法错误,迫 ...

  5. Java中将xml文件转化为json的两种方式

    原文地址https://blog.csdn.net/a532672728/article/details/76312475 最近有个需求,要将xml转json之后存储在redis中,找来找去发现整体来 ...

  6. Unity调用Android的两种方式:其一、调用jar包

    unity在Android端开发的时候,免不了要调用Java:Unity可以通过两种方式来调用Android:一是调用jar.二是调用aar. 这篇文章主要讲解怎么从无到有的生成一个jar包,然后un ...

  7. C#解析json的几种方式

    json格式的数据是javascript原生的一种数据格式,比xml更简洁. 它有两种形式:json对象和json对象数组. 在此之前,有必要解释几个基本概念: json字符串,就是string,它一 ...

  8. Ajax中解析Json的两种方法详解

    eval();  //此方法不推荐 JSON.parse();  //推荐方法 一.两种方法的区别 我们先初始化一个json格式的对象: var jsonDate = '{ "name&qu ...

  9. SpringMVC 返回json的两种方式

    前后台数据交互使用json是一种很重要的方式.本文主要探讨SpringMVC框架使用json传输的技术. 请注意,本文所提到的项目使用Spring 版本是4.1.7,其他版本在具体使用上可能有不一样的 ...

随机推荐

  1. 校友聊NABCD需求分析

    校友聊 NABCD需求分析 N:内网用户流量不够使用 A:基于局域网进行通讯 B:通讯不花费外网流量 C:目前学校还没有使用 D:将软件放在校园网,可以下载使用

  2. spring冲刺第十天

    调试运行,对整体的游戏方面进行改进.冲刺完了,但依然有很多问题,比如无法暂停,游戏结束后只能退出重来等

  3. Task 6.3 冲刺Two之站立会议2

    今天主要将聊天的主界面加以改善,添加了用户登陆后的提示,实现了好友的增删和查询以及自己的账号的个人信息,也可以使用户实现对自己的头像以及个性签名.个人信息等的管理.

  4. 超实用 2 ArrayList链表之 员工工资管理系统

    package ArrayList的小程序; import java.io.*; import java.util.*; public class kkk { /** * 作者:Mr.fan * 功能 ...

  5. Gradle入门(4):依赖管理

    在现实生活中,要创造一个没有任何外部依赖的应用程序并非不可能,但也是极具挑战的.这也是为什么依赖管理对于每个软件项目都是至关重要的一部分. 这篇教程主要讲述如何使用Gradle管理我们项目的依赖,我们 ...

  6. TCP系列54—拥塞控制—17、AQM及ECN

    一.概述 ECN的相关内容是在RFC3168中定义的,这里我简单描述一下RFC3168涉及的主要内容. 1.AQM和RED 目前TCP中多数的拥塞控制算法都是通过缓慢增加拥塞窗口直到检测到丢包来进行慢 ...

  7. js 对象的合并(3种方法)转载

    对象的合并 需求:设有对象 o1 ,o2,需要得到对象 o3 var o1 = { a:'a' }, o2 = { b:'b' }; // 则 var o3 = { a:'a', b:'b' } 方法 ...

  8. datatables 排序 如何禁止

    $.extend( true, $.fn.dataTable.defaults, {     "searching": false,     "ordering" ...

  9. 一键轻松查看apk包名和Main Activity

    环境 Windows系统(我的是Win10 64位) Python3(我的是3.6.1) 已安装Git 安装 pip install git+https://github.com/codeskyblu ...

  10. (转)web开发流程

    a.项目经理与公司决策层的沟通,以确定这个需求有没有足够的人手和可行性去实现,以及与现有产品的依存关系. b.公司决策层与市场/策划部门的交流,这个过程将进行的相当充分,并且是反复.长期的,它致力于从 ...