读取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. Java解析XML文档(简单实例)——dom解析xml

      一.前言 用Java解析XML文档,最常用的有两种方法:使用基于事件的XML简单API(Simple API for XML)称为SAX和基于树和节点的文档对象模型(Document Object ...

  2. 10.6 noip模拟试题

    更正:第三组:不存在相同的字符|str|=26,26<=n<=100 60 /* 呵呵哒~这题 正解还在研究.... 因为没有题解只有个std还在看 不过乱搞一下可以70(数据好像有问题只 ...

  3. 响应式WEB设计

    近期在学习有关响应式设计的内容,对此做了些整理,图片来源于网络,附上自己做的简单demo,没有js,只用CSS做了简单的搭建http://y.zhso.net/. 1.为什么需要响应式web设计 出于 ...

  4. Member var and Static var.

    /* member variable and static variable: 1,invoke ways: member variable,also called 'instance' variab ...

  5. 如何利用C#编写网页投票器程序 如何使用代理来投票 代理IP来投票

      一.前言看个图,了解下投票的过程.提交投票信息投票页 ――――――――>投票信息处理页反馈投票结果(请求页)<―――――――(响应页)一般情况下,填写投票信息,然后点提交按钮发送到响应 ...

  6. 部分A+B_1

    正整数A的“DA(为1位整数)部分”定义为由A中所有DA组成的新整数PA.例如:给定A = 3862767,DA = 6,则A的“6部分”PA是66,因为A中有2个6. 现给定A.DA.B.DB,请编 ...

  7. 如何让低版本的IE浏览器(IE6/IE7/IE8)支持HTML5 header等新标签

    html5提供的一些新标签(article,aside,dialog,footer,header,section,footer,nav,figure,menu)使用起来非常的方便,但是低版本的IE浏览 ...

  8. C#快速导入海量XML数据至SQL Server数据库

    #region 将Xml中的数据读到Dataset中,然后用SqlBulkCopy类把数据copy到目的表中using (XmlTextReader xmlReader = new XmlTextRe ...

  9. C# winform 递归选中TreeView子节点

    /// <summary> /// 递归选中所有的自节点 /// </summary> /// <param name="nodeThis">T ...

  10. Aspnet MVC 异步调用

    一个简图来描述下Aspnet MVC下的异步调用 { request } / \/ -------ISS------- > work thread | \ | \ route - aysn co ...