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 是轻量级的文本数据交换格 ...
随机推荐
- docker入门(一)
docker安装 yum install -y docker-io [root@centos ~]# yum install -y docker-io 已加载插件:fastestmirror, lan ...
- Java 406
项目改名之后, 项目上传后,报错,406,可是项目本地是可以跑起来的, 联系管理员,管理员改了个/etc/httpd/conf/workers2.properties 里面,将本次的项目加入进去就OK ...
- Ant工具
Ant工具 Ant是一种基于Java的build工具.理论上来说,它有些类似于(Unix)C中的make ,但没有make的缺陷.目前的最新版本为:Ant 1.9.4[1] . Ant的概念 当一 ...
- openwrt advanced configuration
openwrt高级配置(汗 照着标题就翻译过来了) openwrt Kamikaze 8.09的一般配置文件都在目录 /etc/config 下面,可以使用脚本来调用参数和设置参数. 比如 sbin/ ...
- Orace数据库锁表的处理与总结<摘抄与总结一>
TM锁(表级锁)类型共有5种,分别称为共享锁(S锁).排它锁(X锁).行级共享锁(RS锁).行级排它锁(RX锁).共享行级排它锁(SRX锁) 当Oracle执行DML语句时,系统自动在所要操作的表上申 ...
- 抓取锁的sql语句-第七次修改
最近闲来没事,把之前写的那个抓取锁的存储过程重新修改.优化了一下,呵呵 create or replace procedure solve_lock_061203_wanjie(v_msg out v ...
- Error Creating Deployment 有关Tomcat配置问题
配置Tomcat的时候出现提示框The selected server is enabled,but is not configured properly.Deployment to it will ...
- 【BZOJ2120】【块状链表】数颜色
Description 墨墨购买了一套N支彩色画笔(其中有些颜色可能相同),摆成一排,你需要回答墨墨的提问.墨墨会像你发布如下指令: 1. Q L R代表询问你从第L支画笔到第R支画笔中共有几种不同颜 ...
- HTML TAG FROM MDN
A <a> <abbr> <acronym> <address> <applet> <area> <article> ...
- apple iphone 3gs 有锁机 刷机 越狱 解锁 全教程(报错3194,3014,1600,短信发不出去等问题可参考)
以自身经历列步骤如下:(基本思路就是刷6.1.6,越狱,降级基带,解锁) 一.准备工作 1.下载3gs 6.1.6官方固件.地址:http://act.feng.com/wetools/index.p ...