//写入json文档
注意事项:

1、在Asset下要有一个StreamingAssets文件夹
2、在文件夹内,有一个已创建好的json空文档
3、引入命名空间 using Litjson; using System; using System.IO;
4、创建英雄和技能类

Demo所需要的命名空间:

[Serializable]
class Hero
{
public string HeroName;
public string Hp;
public string Attack;
public List<Skill> Skills = new List<Skill> ();
} [Serializable]
class Skill
{
public string keyCode;
public string Name;
public string CD;
public string MP;
} void CreatJson ()
{
JsonData nuoke = new JsonData ();
nuoke ["HeroName"] = "诺克";
nuoke ["HP"] = ;
nuoke ["Attack"] = ;
nuoke ["Skills"] = new JsonData (); //一技能:大杀四方
JsonData skill1 = new JsonData ();
skill1 ["keyCode"] = "Q";
skill1 ["Name"] = "大杀四方";
skill1 ["CD"] = "9/8/7/6/5";
skill1 ["MP"] = ""; //二技能:致残打击
JsonData skill2 = new JsonData ();
skill2 ["keyCode"] = "W";
skill2 ["Name"] = "致残打击";
skill2 ["CD"] = "9/8/7/6/5";
skill2 ["MP"] = ""; //三技能:无情铁手
JsonData skill3 = new JsonData ();
skill2 ["keyCode"] = "E";
skill2 ["Name"] = "无情铁手";
skill2 ["CD"] = "24/21/18/15/12";
skill2 ["MP"] = ""; //大招:诺克萨斯断头台
JsonData skill4 = new JsonData ();
skill2 ["keyCode"] = "R";
skill2 ["Name"] = "诺克萨斯断头台";
skill2 ["CD"] = "120/100/80";
skill2 ["MP"] = "100/100/0"; //将生成的技能对象放到诺克的技能中
nuoke ["Skills"].Add (skill1);
nuoke ["Skills"].Add (skill2);
nuoke ["Skills"].Add (skill3);
nuoke ["Skills"].Add (skill4); //将生成的对象转化成json文档
string json = JsonMapper.ToJson (nuoke);
//将json写入到文件
string path = Application.streamingAssetsPath + "/Nuoke.json";
StreamWriter sw = new StreamWriter (path);
sw.Write (json);
sw.Close ();
} //解析json
void PraseJson ()
{
FileInfo file = new FileInfo (Application.dataPath + "/StreamingAssets/Nuoke.json");
StreamReader reader = new StreamReader (file.OpenRead (), Encoding.UTF8);
string content = reader.ReadToEnd ();
reader.Close ();
reader.Dispose ();
JsonData nuokeData = JsonMapper.ToObject (content);
m_text.text = "英雄:" + nuokeData ["HeroName"] + "\n";
//通过JsonData对象访问数据
for (int i = ; i < nuokeData ["Skills"].Count; i++) {
m_text.text += "技能:" + nuokeData ["Skills"] [i] ["Name"] + "\n技能键:\t" +
nuokeData ["Skills"] [i] ["keyCode"] + "\nCD:\t" +
nuokeData ["Skills"] [i] ["CD"] + "\nMP:\t" + nuokeData ["Skills"] [i] ["MP"] + "\n";
}
}

写入Json的中文会默认转化为UTF-8编码格式,在解析时,只需转换格式即可

unity3d使用litjson中文显示的问题 ,一下代码选至(https://www.cnblogs.com/fyluyg/p/5963052.html)
  我们在使用litjson时它的编码方式是unicode的,所以我将json转成string输出时显示的是unicode的编码。这样我们显示或者保存中文时不是很方便。我们可以将中文的unicode转成能识别的GBK编码。 using UnityEngine;
using System.Collections.Generic;
using Utils;
using LitJson;
using System;
using System.Text.RegularExpressions; public class Script1 : MonoBehaviour
{
public void OnTestJson()
{
JsonData sData = new JsonData();
JsonData data1 = new JsonData();
JsonData data2 = new JsonData(); data1["等级"] = "";
data1["位置"] = "m=1000,x=33,y=21"; //新手村 data2["等级"] = "";
data2["位置"] = "m=1001,x=58,y=97"; //桃园镇 sData["张三"] = data1;
sData["李四"] = data2; string jsonStr = sData.ToJson(); Regex reg = new Regex(@"(?i)\\[uU]([0-9a-f]{4})");
var ss = reg.Replace(jsonStr, delegate(Match m) { return ((char)Convert.ToInt32(m.Groups[].Value, )).ToString(); }); print(ss);
}
}

10 Json(unity3D)的更多相关文章

  1. 10. JavaScript学习笔记——JSON

    10. JSON ///[JSON是一种数据格式,不是JS 独有的] ///[JSON语法] /* 1.数据书写格式:"name":value,JSON要求给属性名加上[双引号], ...

  2. 原生JS:JSON对象详解

    JSON对象 支持到IE8,旧版的IE需要Polyfill 本文参考MDN做的详细整理,方便大家参考[MDN](https://developer.mozilla.org/zh-CN/docs/Web ...

  3. 如何正确的使用json?如何在.Net中使用json?

    什么是json json是一种轻量级的数据交换格式,由N组键值对组成的字符串,完全独立于语言的文本格式. 为什么要使用json 在很久很久以前,调用第三方API时,我们通常是采用xml进行数据交互,但 ...

  4. JSON.parse

    摘自:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse The J ...

  5. JS Json数据转换

    *** json字符串中不能出现单引号,不然JSON.parse会报错,处理方式将单引号转义 概述 JSON.stringify() 方法可以将任意的 JavaScript 值序列化成 JSON 字符 ...

  6. JSON简介以及用法汇总

    什么是JSON? JavaScript 对象表示法(JavaScript Object Notation). JSON是一种轻量级的数据交换格式,某个JSON格式的文件内部譬如可以长成这样: { &q ...

  7. Asp.net中Json的序列化和反序列化(一)

    JSON是专门为浏览器中的网页上运行的JavaScript代码而设计的一种数据格式.在网站应用中使用JSON的场景越来越多,本文介绍ASP.NET中JSON的序列化和反序列化,主要对JSON的简单介绍 ...

  8. ASP.NET中JSON的序列化和反序列化

    JSON是专门为浏览器中的网页上运行的JavaScript代码而设计的一种数据格式.在网站应用中使用JSON的场景越来越多,本文介绍 ASP.NET中JSON的序列化和反序列化,主要对JSON的简单介 ...

  9. C++ json库jsoncpp 吐槽

    Explain 最近在做游戏接入SDK时用到C++的json库jsoncpp,jsoncpp 是一款优秀的json库,但恶心的一点是它采用Assert作为错误处理方法,而assert在linux下通过 ...

随机推荐

  1. SpringBoo-Thymeleaf

    SpringBoo-Thymeleaf SpringBoo-Thymeleaf简介 ​ SpringBoot并不推荐使用JSP,它推荐我们使用模板引擎Thymeleaf,它与Velocity.Free ...

  2. 小程序真机上报错 for developer: some selectors are not allowed in component wxss , including tag name selectors, id selectors, and attribute selectors

    for developer: some selectors are not allowed in component wxss , including tag name selectors, id s ...

  3. 免费的 Linux 分区管理器使用介绍

    下面的列表没有特定的排名顺序.大多数分区工具应该存在于 Linux 发行版的仓库中. GParted 这可能是 Linux 发行版中最流行的基于 GUI 的分区管理器.你可能已在某些发行版中预装它.如 ...

  4. pytorch max和clamp

    torch.max() torch.max(a):数组a的最大值 torch.max(a, dim=1):多维数组沿维度1方向上的最大值,若a为二维数组,则为每行的最大值(此时是对每行的每列值比较取最 ...

  5. Maven添加Tomcat插件实现热部署

    Maven热部署,顾名思义就是可以不影响项目在服务器中的运行情况,可以实现项目代码的更新,减少启动,编译时间,达到快速开发的目的,也不需要手动拷贝war包到远程项目,可以直接将项目以及war包部署到远 ...

  6. SqlServer查看锁表与解锁

    某些情况下,sqlserver的表会被锁住,比如某个会话窗口有数据一直没提交,窗口又没关闭,这时表就会被锁住 其他任何连接查询表数据时都不会返回 这时需要手工杀掉产生死锁的会话ID,才能恢复正常 查看 ...

  7. dwr超时

    DWR可以指定超时设置: 1.设置局部超时: RemoteBean.remoteMethod(param1, param2, ..., { callback: callbackfun, //回调函数 ...

  8. idea-plugin-easycode

    1.背景 在练习使用mybatis-generator时候,无意间看到博文esaycode(代码神器),https://www.jianshu.com/p/e4192d7c6844,试验完,感觉这个工 ...

  9. SpringBoot-属性文件properties形式

    SpringBoot-属性文件properties形式 上述使用JavaBean的配置可以实现数据源的配置,但是如果配置文件中的内容需要被多次调用就没那么方便了,所以我们学习新的方法,将Propert ...

  10. 在windows7 64位上安装selenium2library问题解决

    今天发现了windows7 64位上安装selenium2Libaray的问题,下载exe文件安装不行.就切换成了半自动模式.  方案如下: 1.首先下载pip安装.(因为要用pip来安装 selen ...