读取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. SSL 错误

    javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?    at com.sun.net.ssl.in ...

  2. Codeforces 231E - Cactus

    231E - Cactus 给一个10^5个点的无向图,每个点最多属于一个环,规定两点之间的简单路:从起点到终点,经过的边不重复 给10^5个询问,每个询问两个点,问这两个点之间有多少条简单路. 挺综 ...

  3. Python 学习 第十篇 CMDB用户权限管理

    Python 学习 第十篇 CMDB用户权限管理 2016-10-10 16:29:17 标签: python 版权声明:原创作品,谢绝转载!否则将追究法律责任. 不管是什么系统,用户权限都是至关重要 ...

  4. OSI 网络七层模型(笔记)

    一直以来我们都在使用着互联网,每天聊着qq,上着淘宝,但是却不了解怎么运行的呢,充满了好奇.今天同过了解来总结一下OSI网络七层模型: 上一张图 OSI (open system interconne ...

  5. TOKEN的保存与验证

    Token主要为了防止非本页数据的提交,防止重复提交. /** * * 保存TOKEN信息 * */ public void saveToken() { //此处生成md5串 string md5 = ...

  6. mysql -数据库(备份与恢复)

    1,备份某个数据库(以db_abc为例) 1)通过 cmd 切换到mysql 安装目录下的'bin'目录,然后执行'mysqldump -uroot -p db_abc > db_abc_bak ...

  7. Initializer block.

    Ref: Initializing Fields Instance initializers are permitted to refer to the current object via the ...

  8. ContextSwitchDeadlock was detected Message(读取注册表时出现).

    google的时候,在StackOverflow中得到个暂时解决的方法: http://stackoverflow.com/questions/2797677/contextswitchdeadloc ...

  9. Sql server 数据库中,纯SQL语句查询、执行 单引号问题。

    在默认值情况下, select 'abc',Titile from tb_Name;  ---输出内容 是abc: 如果想输出 单引号 'abc,需要使用select '''abc',Titile f ...

  10. Scanner中next()和nextline()读取字符串方法和区别

    在实现字符窗口的输入时,我个人更喜欢选择使用扫描器Scanner,它操作起来比较简单.在写作业的过程中,我发现用Scanner实现字符串的输入有两种方法,一种是next(),一种nextLine(), ...