首先我们需要下载一个文件 LitJson.dll(下载链接 ps: 是用自己的百度云盘下载的如果链接过时,请留言或自行下载, 密码: 5foa)

另外,由于我们要发布到安卓手机上,所以需要配置Jar和SDK,由于这里主要讲Json在安卓端的修改和读取,在这里就不细说了,当然如果不发布手机端的话,电脑端也是可以正常使用的

(1)首先我们来简单搭建一个测试环境(如图)

从上到下依次为text文本框, 按钮, 输入框, 按钮, 功能如图显示(如果需要的话可以把UI放大,以免在手机上面太小,或者在Game左上角调整分辨率),. 搭建完之后,保存场景(菜单来File--Save Scene)

(2)现在我们需要来写脚本了,建一个名字为JsonTest的Csharp脚本, 如下:

 using UnityEngine;
using System.Collections;
using LitJson; //导入Json
using UnityEngine.UI; //导入UI
using System.Text; //使用StringBuilder
using System.IO; //使用文件流 /// <summary>
/// Json手机端读取测试
/// </summary>
public class JsonTest : MonoBehaviour
{
public Text jsonText; //显示Json的文本框
public InputField input; //修改Json数据的输入文本框
public string name; //测试是否更换了Json里面的值 void Awake()
{
name = "Person"; //写一个人物的属性
SaveJsonString(GetJson()); //得到一个Json数据之后,把这个数据存储起来
} public void DidReadJsonButton_Click() //读取Json文本的按钮事件
{
jsonText.text = GetJsonString(); //读取json数据,并且显示到文本框里面
} public void DidConfirmInputButton_Click() //读取确定输入框内容的按钮事件
{
name = input.text; //获取文本框里面的数据
SaveJsonString(GetJson()); //存储起来
} public string GetJson() //由于这里是测试, 本人就在这里简单写一个Json数据
{ //得到Json格式字符串
StringBuilder sb = new StringBuilder();
JsonWriter writer = new JsonWriter(sb);
writer.WriteObjectStart(); //字典开始
writer.WritePropertyName(name); //键值(人物属性 通过改变name来打印出来值观察)
writer.WriteObjectStart();
writer.WritePropertyName("Hp"); //里面有这些属性
writer.Write("");
writer.WritePropertyName("Mp");
writer.Write("");
writer.WritePropertyName("Attack");
writer.Write("");
writer.WritePropertyName("Exp");
writer.Write("");
writer.WriteObjectEnd();
writer.WriteObjectEnd(); //字典结束
return sb.ToString(); //返回Json格式的字符串
} public void SaveJsonString(string JsonString) //保存Json格式字符串
{
FileInfo file = new FileInfo(Application.persistentDataPath + "JsonData.Json"); //这里是重点,会在下面细说的,这里只需要知道它只是一个路径
StreamWriter writer = file.CreateText(); //用文本写入的方式
writer.Write(JsonString); //写入数据
writer.Close(); //关闭写指针
writer.Dispose(); //销毁写指针
} public string GetJsonString() //从文件里面读取json数据
{ //由于这里只是测试,所以就不写具体的解析数据了
StreamReader reader = new StreamReader(Application.persistentDataPath + "JsonData.Json");
string jsonData = reader.ReadToEnd();
reader.Close();
reader.Dispose();
return jsonData;
}
}

(3)脚本我们已经写完了, 现在我们需要挂载脚本,我是建了一个空物体挂载脚本,然后需要把对应的物体给拖进去(不要忘记拖按钮事件哦)运行结果如下:

           

通过结果可以看到,在电脑端已经成功了

(4)接下来就是打包发布了, 菜单栏(File)--Build Settings--Platform(Android)-- Add Current(或者把刚才的场景拖进去,尽量在打包之前先把场景保存一遍,然后在添加进去), 在这里需要点击Player Settings 右边有个小安卓机器人的图标,点击一下,到Ohter Settings里面ba Bundle Identifier 里面的com.Company.后面的改一下,如果需要旋转屏幕可以在Resolution and Preadentaion里面的Default Orientaion里面调整你想要的效果

     

上面依次是手机上面的效果, 开始页面,显示,修改页面

(5)如果想发布到电脑端的话,同样也可以哦,只需要把刚才的第四步里面发布的发布平台(Platform)更换成PC就可以了,同样可以使用的

(6)现在我们来说说Application.persistentDataPath这个路径

     这个路径只有在应用程序装到手机端之后才有的路径,所以不能直接把文件存放在该路径, 在这个路径下的资源,是可以修改和读取的,对于我们需要修改的数据可以存放在这里面的, 就拿存放在Resources资源文件夹里面的资源来说, 这里面的资源是可以通过Resources.Load<>来获取到的,但是不能修改,这个比较坑,不过可以把一些预制体放在这个文件夹里面还是比较方便的.

unity3d在Android端读取修改Json数据的更多相关文章

  1. android菜鸟学习笔记25----与服务器端交互(二)解析服务端返回的json数据及使用一个开源组件请求服务端数据

    补充:关于PHP服务端可能出现的问题: 如果你刚好也像我一样,用php实现的服务端程序,采用的是apache服务器,那么虚拟主机的配置可能会影响到android应用的调试!! 在android应用中访 ...

  2. 保存json数据到本地和读取本地json数据

    private void saveJson(JsonBean bean) { File file = new File(getFilesDir(), "json.txt"); Bu ...

  3. Java服务器对外提供接口以及Android端向服务器请求数据

    转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/5056780.html 讲解下java服务器是如何对移动终端提供接口的,以什么数据格式提供出去,移动端又是怎么 ...

  4. js读取解析JSON数据

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式.同时,JSON是 JavaScript 原生格式,这意 ...

  5. js读取解析JSON数据(转)

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式.同时,JSON是 JavaScript 原生格式,这意 ...

  6. 实现客户端与服务端之间传输json数据

    步骤:创建数据库,并创建表.利用myeclipse创建新工程,利用JDBC实现java操纵数据库.实现客户端类,服务端类.具体实现:创建数据表create table usertable( usern ...

  7. 服务端提供的JSON数据接口与用户端接收解析JSON数据

    JSON格式的服务接口:http://www.cnblogs.com/visec479/articles/4118338.html 首先来了解下JSON格式解析 json结构的格式就是若干个 键/值( ...

  8. Android学习笔记之JSON数据解析

    转载:Android学习笔记44:JSON数据解析 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,为Web应用开发提供了一种 ...

  9. [IOS]UIWebView实现保存页面和读取服务器端json数据

    如何通过viewView保存访问过的页面?和如何获取并解析服务器端发送过来的json数据?通过一个简单的Demo来学习一下吧! 操作步骤: 1.创建SingleViewApplication应用,新建 ...

随机推荐

  1. Windows下配置sphinx+reStructuredText详解

    最近有朋友想在windows下做个人笔记,没有找到顺手的工具,问我有什么好的工具推荐.正好前两天在网上看到一款做文档的利器sphinx+reStructText,当时在ubuntu下搭了下环境试了试, ...

  2. js 倒计时 已过去时间

    页面中的代码: <strong id="timer" datatime="2012-12-09 10:20:30"></strong> ...

  3. 计算一个数组里的重复值并且删去(java)

    主要思想: 数组可以无序 假设数字里的值都为正 循环判断数组 如果与前面的数字相同则变为-1 然后记录-1的个数算出重复值 然后重新new一个减去重复值长度的新数组 和原数组判断 不为-1的全部复制进 ...

  4. Core Bluetooth 概述 【官方文档翻译】

    Core Bluetooth 框架在Mac和iOS平台,为配备了低功耗蓝牙无线技术的设备提供了进行通信所需要的类.例如,您的应用程序可以发现,探索,和低功耗的外围设备进行交互,如心率监视器.数字温控器 ...

  5. c# 异步调用简单例子(转载)

    首先来看一个简单的例子: 小明在烧水,等水烧开以后,将开水灌入热水瓶,然后开始整理家务 小文在烧水,在烧水的过程中整理家务,等水烧开以后,放下手中的家务活,将开水灌入热水瓶,然后继续整理家务 这也是日 ...

  6. jquery 项目所用

    <script> $(document).ready(function(){ $.ajax({ type:'post', url :'interface.ajax.php', data:{ ...

  7. onbeforepaste

    onbeforepaste事件用法 onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').rep ...

  8. AngularJS中serivce,factory,provider的区别

    一.service引导 刚开始学习Angular的时候,经常被误解和被初学者问到的组件是 service(), factory(), 和 provide()这几个方法之间的差别.This is whe ...

  9. ie8下的透明 问题

    团队里经常遇到,索性整理一起 是我们在前端开发中经常遇到的,在问题中经常遇到的两个问题是背景色透明和整体透明 先说下背景色透明,背景色透明,在现代浏览器中,可以用rgba颜色作为背景色. 简单介绍下r ...

  10. Jumpserver

    Jumpserver 是一款由python编写开源的跳板机(堡垒机)系统,实现了跳板机应有的功能.基于ssh协议来管理,客户端无需安装agent. 支持常见系统: redhat centos debi ...