//写入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. 从LG绝不放弃智能手机业务看后者到底有多重要?

    近年来,全球手机市场放缓已经是不争的事实.与此同时,手机行业集中趋势明显,几家巨头掌握着大部分市场,占据着垄断的市场位置.但就是在这样的态势下,很多手机部门明显已经成为累赘的企业,却依然不想放弃智能手 ...

  2. 前端轻量级、简单、易用的富文本编辑器 wangEditor 的基本用法

    1.富文本编辑器市面上有很多,但是综合考虑之后wangEditor是最易用的框架,推荐使用 首先进入官网 http://www.wangeditor.com 基本是2中方式引入: 使用CDN://un ...

  3. [Codeforces]1263B PIN Code

    题目 A PIN code is a string that consists of exactly 444 digits. Examples of possible PIN codes: 70137 ...

  4. Java基础学习总结(一)——Java开发学习介绍

    Java平台: 1.J2SE java开发平台标准版 2.J2EE java开发费平台企业版 Java程序需要在虚拟机上才可以运行,换言之只要有虚拟机的系统都可以运行java程序.不同的系统上要安装对 ...

  5. u盘使用记录、痕迹删除技巧方法

    在日常生活的使用U盘过程当中,系统会记录下大量U盘的使用记录信息,那么接下来小编就来同大家分享介绍如何删除掉这些使用记录的方法知识. 1. 往系统里面添加环境变量devmgr_shownonprese ...

  6. leetcode102 Binary Tree Level Order Traversal

    """ Given a binary tree, return the level order traversal of its nodes' values. (ie, ...

  7. JSONObject 和JSONArray基本使用

    1. 打包 JSONObject jsonObject = new JSONObject(); jsonObject.put("code", "200"); j ...

  8. 小程序之scroll-view用法 - 水平滚动

    <scroll-view class="box" scroll-x="true" > <view class="box-item&q ...

  9. PlayJava SpringMVC与Struts2杂谈

    一 先做一个简单对比: 1. SpringMVC的入口是Servlet,核心是DispatcherServlet,Struts2是Filter,核心是FilterDispatcher 2. Sprin ...

  10. 三十、SAP中的内置图标

    一.选择[编辑]->[模式] 二.选中写入模式 三.选中图标 四.选择我们需要的图标 五.选中图标后,选择复制 六.点击之后,会回到代码界面,如下 七.执行结果如下,显示出了一个神奇的图标