读取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文件数据的更多相关文章

  1. Android - 读取JSON文件数据

    Android读取JSON文件数据 JSON - JavaScript Object Notation 是一种存储和交换文本信息的语法. JSON对象在花括号中书写.用逗号来分隔值. JSON数组在方 ...

  2. jquery简单ajax示例_读取json文件数据

    来自于<jquery权威指南> -------------------------------------- 点击button后,获取到json文件数据,显示如下: Json文件: [ { ...

  3. IIS7.5支持解析读取.json文件数据

    在站点中添加 MIME类型去支持Json文件的解析 添加mime类型 文件扩展名:.json MIME类型:application/json 添加成功后即可. 如果不能直接操作iis也可以直接在web ...

  4. 接口自动化(三)--读取json文件中的数据

    上篇讲到实际的请求数据放置在json文件内,这一部分记述一下python读取json文件的实现. 代码如下(代码做了简化,根据需要调优:可做一些容错处理): 1 import json 2 3 cla ...

  5. Unity的Json解析<一>--读取Json文件

    本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接:http://blog.csdn.net/cartzhang/article/details/50373558 作者:car ...

  6. 在Unity中使用LitJson解析json文件

    LitJson 这个库需要找资源,找到LitJson.dll后将它放在Assets文件夹下,在脚本中使用using引入即可 测试代码 json文件: {"Archice":[{&q ...

  7. python读取json文件

    比如下图json数据,场景需要读取出wxid这项数据,然后传给后面的函数去使用 具体的脚本为 import json f =open('d:\\1024.json',encoding='utf-8') ...

  8. jqery ajax读取json文件

    json文件数据 [ {"name":"哈哈··","email":"邮箱01","gender": ...

  9. Android读取JSON格式数据

    Android读取JSON格式数据 1. 何为JSON? JSON,全称为JavaScript Object Notation,意为JavaScript对象表示法. JSON 是轻量级的文本数据交换格 ...

随机推荐

  1. JSP-注释,脚本元素,指令

    jsp中的注释 jsp隐藏注释 完全对客户机隐藏,不会将注释内容发送给客户机. 其语法格式为:<%-- comment --%> comment为要添加的文本注释内容. HTML注释 不完 ...

  2. CakePHP之控制器

    控制器 控制器是MVC中的“C”. 如果你的网站使用Cake框架制作,一般根据url地址和通过路由,就会找到正确的控制器,然后控制器的动作就会被调用. 一个控制器需要解释请求数据.确保使用正确的模型. ...

  3. CSS Hack (各个浏览器兼容的问题)

    写css样式的时候,恐怕最头疼的就是各个浏览器下的兼容性问题,即css hack,明明感觉应该是对的,但是就是出不来效果,我根据平时所接触的,总结一下关于兼容 性的技巧,希望可以对大家有所帮助…… C ...

  4. JAAS - Document

    JAAS 参考文档: JAAS Reference Guide JAAS Authentication Tutorial JAAS Authorization Tutorial LoginModule ...

  5. Unity3D 游戏的碰撞

    首先创建两个精灵,然后都绑定上碰撞方法(这个是在上一篇文章的基本上): 不过 要注意一点就是碰撞器需要挂一个重力组件,不然无效 所以添加了差不多就能够实现物体碰撞了: 接下来技术写代码,让碰撞的时候进 ...

  6. 自定义图文混排视图MyImageTextView

    http://blog.csdn.net/xujunfeng000/article/details/36399339?utm_source=tuicool&utm_medium=referra ...

  7. wpf 窗体中显示当前系统时间

    先看一下效果: 这其实是我放置了两个TextBlock,上面显示当前的日期,下面显示时间. 接下来展示一下代码: 在XAML中: <StackPanel Width="205" ...

  8. Javascript的AMD规范

    Javascript发展到今天,已经从一个小丑语言变成了不可替代的前端利器,已经脱离了低端的玩笑脚步,而转变为有规可依的强大语言. 本文主要讲述下如今被大力推广的AMD规范,为什么要AMD,什么场景是 ...

  9. javascript基础学习(二)

    javascript的数据类型 学习要点: typeof操作符 五种简单数据类型:Undefined.String.Number.Null.Boolean 引用数据类型:数组和对象 一.typeof操 ...

  10. ACM竞赛常用STL(一)

    全排列函数next_permutation STL 中专门用于排列的函数(可以处理存在重复数据集的排列问题) 头文件:#include <algorithm> using namespac ...