Unity 数据存储与读取_JSON

JSON简介

1. JSON 是纯文本

2. JSON 是一种轻量级的数据交换格式

3. JSON 具有层级结构(值中存在值)

1. 数据在键值对
2. 数据由逗号分隔
3. 花括号保存对象
4. 方括号保存数组

{
    "name" : "小李飞刀",
    "age"  : 20,
    "height" : 1.99,
    "school" : {
        “name” : “蓝鸥",
        “address” : “上海松江"
          },
    "photos" : [
        {
            "icon" : "beauty.png",
            "time" : "2017-01-01"
        },
        {
            "icon" : "nice.png",
            "time" : "2017-02-07"
        },
        {
            "icon" : "good.png",
            "time" : "2017-05-06"
        }
    ]
}

使用类库有两种:
1. System.Json(便于JSON生成)
需要将System.Json.dll放入到Assets文件夹下
2. LitJson(便于JSON解析)
需要将LitJson.dll放入到Assets文件夹下

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using LitJson;
using System.IO;
using UnityEngine.UI;
using System;

public class OpertionJson : UIHandler {
    //用于操作json数据的对象
    JsonData data = new JsonData();
    //路径
    public string filepath;
    //json格式字符串
    public string jsonStr;

    public Button SaveJsonBtn;
    public Button LoadJsonBtn;
    // Use this for initialization
    void Start () {
        data["Name"] = "夏洛克";
        data["Level"] = 20;
        data["Hp"] = 500;
        data["Attack"] = 100;
        data["Defence"] = 50;
        //将jsonData对象转成json格式字符串
        jsonStr = data.ToJson();
        
        //路径赋值
        filepath = Application.dataPath + "/shylock.json";

        SaveJsonBtn = GetByName("SaveJsonBtn").GetComponent
using LitJson;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEngine;


public struct Skill
{
    public string killname;
    public string killkey;
    public int[] time;
    public int killMP;
}
public struct Nork
{
    public string Name;
    public double HP;
    public double Attack;
    public Skill[] kills;

}

public class NorkController : MonoBehaviour {

	// Use this for initialization
	void Start () {
        Nork nork_ = new Nork();
        nork_.Name = "诺克萨斯之手";
        nork_.HP = 582.24;
        nork_.Attack = 55.88;
        nork_.kills = new Skill[5];
        nork_.kills[0].killname = "出血";
        nork_.kills[0].killkey = "null";
        nork_.kills[1].killname = "大杀四方";
        nork_.kills[1].killkey = "Q";
        nork_.kills[1].time = new int[5] { 9, 8, 7, 6, 5 };
        nork_.kills[1].killMP = 30;
        nork_.kills[2].killname = "致残打击";
        nork_.kills[2].killkey = "W";
        nork_.kills[2].time = new int[5] { 9, 8, 7, 6, 5 };
        nork_.kills[2].killMP = 30;
        nork_.kills[3].killname = "无情铁手";
        nork_.kills[3].killkey = "E";
        nork_.kills[3].time = new int[5] { 24, 21, 18, 15, 12 };
        nork_.kills[4].killname = "诺克萨斯断头台";
        nork_.kills[4].killkey = "R";
        nork_.kills[4].time = new int[3] { 120, 100, 80 };
        nork_.kills[4].killMP = 100;



        string filePath = Application.dataPath + "/nork.json";
        StreamWriter streamWriter = new StreamWriter(filePath);

        string str = JsonMapper.ToJson(nork_);
        streamWriter.Write(str);
        streamWriter.Close();


    }
	
	// Update is called once per frame
	void Update () {
		
	}
}



你可能感兴趣的:(Unity数据存储与读取)