unity进阶学习笔记:json和xml

本文探讨了早期的CSV数据格式及其局限性,然后详细介绍了Unity中JSON的使用,包括Unity内置的JsonUtility和第三方库LitJson的示例。接着,文章转向XML,解释了XML的基本结构和解析方法,包括XPath的使用。通过实例,读者可以深入理解如何在Unity中操作JSON和XML数据。
摘要由CSDN通过智能技术生成

1早期的数据格式

在早期程序开发中一个简单且常用的数据格式为CSV。该格式单纯依靠逗号来分割数据。目前windows的office依然支持CSV解析,我们可以试着新建一个txt文件,在里面加入逗号分隔的信息:

a, 1, 15, 30, true

将txt文件后缀改为csv,可以看到系统自动生成了一个excel表格,由空格分隔的每一项都成了表格的一个单元。但显然这种方法可读性很差,因此对于存储大量数据不常用

2 json

json是一种“数组+对象” 的数据存储方式,其中[ ]内为数组,{ }内为对象,例如

{
   
	"Persons":[
		{
   
			"name":"a",
			"age":18
		},
		{
   
			"name":"b",
			"age":17
		}
	]
}

unity自带json数据创建和解析的功能JsonUtility。

示例:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;

[Serializable]
public class Person {
   
    public string name;
    public int age;
}


[Serializable]
public class Persons {
   
    public Person[] persons;
}


public class JsonUtilityTest : MonoBehaviour
{
   
    // Start is called before the first frame update
    void Start()
    {
   
        Person person = new Person();
        person.name = "a";
        person.age = 18;
        Person person2 = new Person();
        person2.name = "b";
        person2.age = 17;
        Persons persons = new Persons();
        persons.persons = new Person[] {
   person, person2};
        string jsonStr = JsonUtility.ToJson(persons);
        Debug.Log(jsonStr);

        Persons ps = JsonUtility.FromJson<Persons>(jsonStr);
        foreach (Person p in ps.persons) {
   
            Debug.Log(p.name);
        }
    }


}

1

using System;

要使用JsonUtility工具,要先在文件中引入System

2

[Serializable]
public class Person {
   
    public string name;
    public int age;
}


[Serializable]
public class Persons {
   
    public Person[] persons;
}

这里我们创建两个类Person和Persons用于示例。在类前面的标记[Serializable]代表可序列化,只有带有该标记的类才能转化为json格式

3

string jsonStr = JsonUtility.ToJson(persons);

在我们创建并赋值Persons对象后,使用JsonUtility.ToJson()方法即可将对象自动转化为json文件,其内容如下:
{“persons”:[{“name”:“a”,“age”:18},{“name”:“b”,“age”:17}]}

Persons ps = JsonUtility.FromJson<Persons>(jsonStr);

要解析json文件,我们使用方法JsonUtility.FromJson<类型>()得到json文件最外层的数据类型,然后即可对该数据进行层层拆包得到里面的数据

除了系统自带的JsonUtility方法,还有很多常用的第三方json数据处理方法,如LitJson

下载LitJson的dll文件后,在unity Assets文件夹下面创建Plugins文件夹,并把LitJson.dll放入该文件夹。在C#脚本中引入LitJson即可使用LitJson文件

LitJson使用示例

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


public class Heros {
   
    public Hero[] heros;
}

public class <
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值