Unity 用C#脚本读取JSON文件数据
读取JSON文件数据网上有很多方法吗,这里采用SimpleJSON,关于SimpleJSON的介绍参考以下链接:http://wiki.unity3d.com/index.php/SimpleJSON,使用之前要先导入SimpleJSON的相关文件。
JSON文件名:achieve.json,文件内容:
{ "30002":{"achieve_id":30002,"achieve_name":"连胜","achieve_race":3,"achieve_type":41,"achieve_des":"排位赛连续胜利10场","achieve_gold":20,"achieve_times":10,"image":"athletics_2"},
"30003":{"achieve_id":30003,"achieve_name":"百战百胜","achieve_race":3,"achieve_type":41,"achieve_des":"排位赛连续胜利100场","achieve_gold":100,"achieve_times":100,"image":"athletics_3"},
"30004":{"achieve_id":30004,"achieve_name":"不屈","achieve_race":3,"achieve_type":42,"achieve_des":"排位赛连续失败10场","achieve_gold":5,"achieve_times":10,"image":"athletics_4"} }
这里直接贴出脚本代码:
ConfigAchieve类代码:
using UnityEngine;
using System.Collections; using SimpleJSON; public class ConfigAchieve
{
private Hashtable hash = new Hashtable(); // 从Json文件中载入信息保存至Hashtable
public void loadFromJson(JSONNode data)
{
if (data == null)
Debug.Log("read faild");
else
{
for(int i= ; i<data.Count; i++)
{
ConfigAchieveItem node = new ConfigAchieveItem(); node.Id = data [i] ["achieve_id"];
node.Name = data [i] ["achieve_name"];
node.Race = data [i] ["achieve_race"];
node.Type = data [i] ["achieve_type"];
node.Des = data [i] ["achieve_des"];
node.Gold = data [i] ["achieve_gold"];
node.Times = data [i] ["achieve_times"];
node.Image = data [i] ["image"]; hash.Add(node.Id, node);
}
}
} // 从Hashtable中返回键为key的值
public ConfigAchieveItem GetItem(string key)
{
ConfigAchieveItem itemAchieve = (ConfigAchieveItem)hash[key];
return itemAchieve;
}
}
ConfigAchieve
ConfigAchieveItem类代码:
using System;
using SimpleJSON; public class ConfigAchieveItem
{
private string _configId = "";
private string _configName = "";
private string _configRace = "";
private string _configType = "";
private string _configDes = "";
private string _configGold = "";
private string _configTimes = "";
private string _configImage = ""; public string Id
{
get { return _configId; }
set { _configId = value; }
} public string Name
{
get { return _configName; }
set { _configName = value; }
} public string Race
{
get { return _configRace; }
set { _configRace = value; }
} public string Type
{
get { return _configType; }
set { _configType = value; }
} public string Des
{
get { return _configDes; }
set { _configDes = value; }
} public string Gold
{
get { return _configGold; }
set { _configGold = value; }
} public string Times
{
get { return _configTimes; }
set { _configTimes = value; }
} public string Image
{
get { return _configImage; }
set { _configImage = value; }
} public void loadDataFromJson(ConfigAchieve achieve, string key)
{
ConfigAchieveItem temp = (ConfigAchieveItem)achieve.GetItem(key); _configId = temp.Id;
_configName = temp.Name;
_configRace = temp.Race;
_configType = temp.Type;
_configDes = temp._configDes;
_configGold = temp.Gold;
_configTimes = temp.Times;
_configImage = temp.Image;
}
}
ConfigAchieveItem
ConfigManager类代码:
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEngine;
using SimpleJSON; public class ConfigManager : MonoBehaviour
{
public ConfigAchieve _config_achieve = new ConfigAchieve(); // Use this for initialization
void Start()
{
Test(); // 测试函数
} // Update is called once per frame
void Update()
{
} // 打开对应路径的json文件
public JSONNode jsonFromFile(string filename)
{
JSONNode json_object = null;
TextAsset filePath = (TextAsset)Resources.Load(filename); if (filePath == null) // Json文件读取失败,打印日志
Debug.Log("find json file faild!");
else
json_object = JSON.Parse(filePath.text); // 转为json格式 return json_object;
} public void Test()
{
_config_achieve.loadFromJson(jsonFromFile("Config/achieve"));
ConfigAchieveItem temp = _config_achieve.GetItem(""); Debug.Log("id = " + temp.Id + " name = " + temp.Name);
Debug.Log("race = " + temp.Race + " type = " + temp.Type);
Debug.Log("des = " + temp.Des + " gold = " + temp.Gold);
Debug.Log("times = " + temp.Times + " image = " + temp.Image);
}
}
ConfigManager
其中ConfigManager用来控制打开json文件,ConfigAchieve用来读取数据,ConfigAchieveItem用来保存每条数据然后就可以用代码中的Test函数来测试读取是否正确。(很久了,大概是这个样子~~)
Unity 用C#脚本读取JSON文件数据的更多相关文章
- Android - 读取JSON文件数据
Android读取JSON文件数据 JSON - JavaScript Object Notation 是一种存储和交换文本信息的语法. JSON对象在花括号中书写.用逗号来分隔值. JSON数组在方 ...
- jquery简单ajax示例_读取json文件数据
来自于<jquery权威指南> -------------------------------------- 点击button后,获取到json文件数据,显示如下: Json文件: [ { ...
- IIS7.5支持解析读取.json文件数据
在站点中添加 MIME类型去支持Json文件的解析 添加mime类型 文件扩展名:.json MIME类型:application/json 添加成功后即可. 如果不能直接操作iis也可以直接在web ...
- 接口自动化(三)--读取json文件中的数据
上篇讲到实际的请求数据放置在json文件内,这一部分记述一下python读取json文件的实现. 代码如下(代码做了简化,根据需要调优:可做一些容错处理): 1 import json 2 3 cla ...
- Unity的Json解析<一>--读取Json文件
本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接:http://blog.csdn.net/cartzhang/article/details/50373558 作者:car ...
- 在Unity中使用LitJson解析json文件
LitJson 这个库需要找资源,找到LitJson.dll后将它放在Assets文件夹下,在脚本中使用using引入即可 测试代码 json文件: {"Archice":[{&q ...
- python读取json文件
比如下图json数据,场景需要读取出wxid这项数据,然后传给后面的函数去使用 具体的脚本为 import json f =open('d:\\1024.json',encoding='utf-8') ...
- jqery ajax读取json文件
json文件数据 [ {"name":"哈哈··","email":"邮箱01","gender": ...
- Android读取JSON格式数据
Android读取JSON格式数据 1. 何为JSON? JSON,全称为JavaScript Object Notation,意为JavaScript对象表示法. JSON 是轻量级的文本数据交换格 ...
随机推荐
- (转载)Java 1.7的新特性
网上找了一下,整理了贴出来. 下面是Java 1.7 里新出现的功能的一些用法例子: 对集合的支持 摒弃了 Java 集合接口的实现类,如: ArrayList . HashSet 和 HashMap ...
- Java基础知识强化之集合框架笔记20:数据结构之 栈 和 队列
1. 栈 先进后出 解析图: 2. 队列 先进先出 解析图:
- css考核点整理(十一)-响应式开发经验,响应式页面的三种核心技术是什么
响应式开发经验,响应式页面的三种核心技术是什么
- Linux系统下查看USB设备名及使用USB设备
1.系统插入USB设备后,从控制台界面有如下提示: 从控制台信息可以看出插入的USB设备名. 从上图可以看出,插入的USB设备为sde4. 但是,如果是CRT工具远程连接过去,可以使用下面的命令来查看 ...
- 9.26 noip模拟试题
魔术球问题弱化版(ball.c/.cpp/.pas) 题目描述 假设有 n 根柱子,现要按下述规则在这 n 根柱子中依次放入编号为 1,2,3,…的球. (1)每次只能在某根柱子的最上面放球. (2) ...
- Java_Activiti5_菜鸟也来学Activiti5工作流_之入门简单例子(一)
// VacationRequest.java /** * author : 冯孟活 ^_^ * dates : 2015年9月1日 下午10:32:58 * class : 演示简单的公司请假流程 ...
- JAva Collections类方法详解
http://blog.csdn.net/lskyne/article/details/8961014 Collections则是集合类的一个工具类/帮助类,其中提供了一系列静态方法,用于对集合中元素 ...
- 十五、C# 使用查询表达式的LINQ
使用查询表达式的LINQ 本章介绍了一种新的语法,查询表达式. 1.查询表达式概述 2.特点:投射 筛选 排序 Let 分组 3.作为方法调用 标准查询运算符所实现的查询在功能上 ...
- 文字超出DIV的边框
已经给div设置了高宽,但是文字还是会戳出div而不是换行 鼓捣了一下好像是因为这个原因 如果全是 aaaaaaaaaaaaaaaaaaaaa 这样的纯英文,那么测试的时候是不会换行的,因为浏览器认为 ...
- Qt Quick 与 QML语言(初学笔记1)
Qt Quick Qt Quick是一些新的UI技术的集合,用来帮助开发者创建一种现在越来越多用于手机.多媒体播放器.机顶盒以及其他便携式设备上的直观的.现代的.流畅的用户界面.简单来说,Qt Qui ...