Unity 数据Json格式的转换
把对象转换为字节序列的过程称为对象的序列化。
把字节序列化恢复为对象过程称为对象的反序列化。
JSON格式的转换,是一大神给我说的,让我拿来存储数据库时对一些数据的处理,感觉特别好用。但是我并没有深入的去学习,这里只是最简单的应用,以下就是一个简单的示例程序。
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using Newtonsoft.Json; //需要下载Newtonsoft.Json.dll文件,放在Plugins文件夹下
using System.IO; public class json : MonoBehaviour { // Use this for initialization
void Start () {
writeTxt();//调用写入文本函数
StartCoroutine(testJson());//调用读取函数
} void writeTxt()
{
MapPosList maplist = new MapPosList();
maplist.points = new List<GetPointXY>();
maplist.points.Add(new GetPointXY(100, 78));
maplist.points.Add(new GetPointXY(54, 121));
maplist.points.Add(new GetPointXY(56, 845));
maplist.points.Add(new GetPointXY(221, 56));
maplist.points.Add(new GetPointXY(454, 23));
maplist.points.Add(new GetPointXY(10, 12));
maplist.points.Add(new GetPointXY(45, 65));
maplist.points.Add(new GetPointXY(898, 887));
//用json将一个对象转成一个字符串
string str = JsonConvert.SerializeObject(maplist); //下面将这个字符串写入本地文本
StreamWriter sw;
FileInfo t = new FileInfo("Assets/Streaming Assets/test.txt");
if (!t.Exists)
{
sw = t.CreateText();
}
else
{
sw = t.AppendText();
}
sw.Write(str);
sw.Close();
sw.Dispose();
}
IEnumerator testJson()
{
WWW w = new WWW("file:///D:/Test/Assets/Streaming Assets/test.txt");
yield return w; string str = w.text.Trim();
//通过json将字符串转换成一个对象
MapPosList data = JsonConvert.DeserializeObject<MapPosList>(str);
Debug.Log(data.points[0].xPosition);
yield return null;
} }
public class GetPointXY
{
public float xPosition;
public float yposition;
public GetPointXY(float x, float y)
{
this.xPosition = x;
this.yposition = y;
}
}
public class MapPosList
{
public List<GetPointXY> points;
}
这里最重要的就是JSON的两个函数:
JsonConvert.SerializeObject//将对象转换为字符串
JsonConvert.DeserializeObject//将字符串恢复为一个对象
这里备份一个Newtonsoft.Json.dll的下载链接,好像各版本都有:
http://yunpan.cn/cK5Ih7aMmy4ZH 访问密码 b6a4
Unity 数据Json格式的转换的更多相关文章
- JavaBean到JSon格式的转换例子的代码
内容过程,把做工程过程较好的内容片段备份一次,如下的内容是关于 JavaBean到JSon格式的转换例子的内容,应该对各朋友有一些用处. User u = new User(); u.setId(1) ...
- Highmaps的天津地图数据JSON格式
Highmaps的天津地图数据JSON格式 Highmaps的天津地图数据JSON格式 下载链接: http://pan.baidu.com/s/1eQgxECU password: tjmj 天津地 ...
- python 把数据 json格式输出
有个要求需要在python的标准输出时候显示json格式数据,如果缩进显示查看数据效果会很好,这里使用json的包会有很多操作 import json date = {u'versions': [{u ...
- ABAP 中JSON格式的转换与解析
RT,JSON是当今十分流行的一种轻量数据格式,广泛地应用于各种数据交换场景中.本文会介绍一种比较简单的将ABAP中的数据转换为JSON格式的方法. (如果你是因为引号的问题搜索到了这篇文章,请直接拉 ...
- Python-字符串str和json格式的转换
str转json str转换为json格式,前提一定需要保证这个str的格式和json是一致的,即左边最外层是大括号,右边的最外层是大括号.如果不一致,推荐用正则进行拆分至和json格式一致1. 通过 ...
- List转换成json格式字符串,json格式字符串转换成list
一.List转换成json字符串 这个比较简单,导入gson-x.x.jar, List<User> users = new ArrayList<User>(); Gson g ...
- 轻量级交互数据json格式初探
[w3cschool tydef]什么是 JSON ?JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)JSON 是轻量级的文本数据交换格式JS ...
- 接口返回数据Json格式处理
有这样一个页面 , 用来显示用户的账户记录数据,并且需要显示每个月的 收入 支出合计 ,在分页的时候涉及到一些问题,需要对返回的Json格式做处理,处理起来比较麻烦,后端返回的Json数据格式形式如下 ...
- js中实现json格式的转换
function person(id,name,age){ this.id=id; this.name=name; this.age=age; } var p=new person(1001,'tom ...
随机推荐
- Hazelcast集群原理分析
简介 hazelcast其中一个很重要的应用就是可以将多个应用服务器组成一个分布式环境的应用,形成一个cluster.这个cluster可以选举出一个master来对外工作.而cluster中的各台服 ...
- SQL Server专家的10个秘诀(翻译加注解)
当你点开这篇文章的时候,如果觉得没有读下去的必要,也希望你能拉到最后看看那几行字! 原文出处:https://technet.microsoft.com/en-us/magazine/gg299551 ...
- NewSQL数据库VoltDB特性简介
VoltDB是一个革命性的新型数据库产品,被称作NewSQL数据库.它基于H-Store,号称比当前数据库产品的吞吐量高45倍,同时又具有很高的扩展性.它的特性主要有以下几点: Ø 高吞吐.低延迟: ...
- iOS集合视图单元格高亮和选中的区别
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交 ...
- 18 Loader 总结
1. Loader 装载器 Android3.0以后出来的 它可以使Activity和Fragment 异步加载数据 变得简单(Loader里封装了AsyncTask) Loader特点: 1,对每一 ...
- 显示图像的SIFT flow描述子
close all; % 模拟figure 5 im = zeros(401,401,3); im(:,:,:) = 0; im(2:200, 2:200, 2) = 255; im(202:400, ...
- (一〇三)静态库(.a)的调试
上节介绍的方法,只能创建静态库而不能调试,因为直接创建静态库工程并非可执行文件. 本文介绍的方法创建的静态库断点能够在调试时起作用. 为了能够调试静态库,应该在一个可执行工程(例如Single Vie ...
- SSH深度历险(六) 深入浅出----- Spring事务配置的五种方式
这对时间在学习SSH中Spring架构,Spring的事务配置做了详细总结,在此之间对Spring的事务配置只是停留在听说的阶段,总结一下,整体把控,通过这次的学习发觉Spring的事务配置只要把思路 ...
- UNIX网络编程——客户/服务器程序设计示范(总结)
(1)当系统负载较轻是,每来一个客户请求现场派生一个子进程为之服务的传统并发服务器程序模型就足够了.这个模型甚至可以与inetd结合使用,也就是inetd处理每个连接的接收.我们的其他意见是就重负荷运 ...
- UIPassValue页面传值 UI_08(下)
2.从前一个界面到后一个界面 注意:解题思路 葵花宝典:属性传值 第一步:在下一个界面视图控制器的.h文件中定义一个属性 第二步:在push之前将数据存储到属性中 第三步:取出属性中的值让控件 ...