IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> Unity使用Newtonsoft.Json插件实现XML与JSON数据的互转 -> 正文阅读

[游戏开发]Unity使用Newtonsoft.Json插件实现XML与JSON数据的互转

插件介绍

  • 介绍

Json.Net是一个读写Json效率比较高的.Net框架,.Json.Net 使得在.Net环境下使用Json更加简单。通过Linq To JSON可以快速的读写Json,通过JsonSerializer可以序列化你的.Net对象。让你轻松实现.Net中所有类型(对象,基本数据类型等)和Json的转换。

  • 特点

高性能:比.NET内置的JSON序列化器更快
编写缩进的、易于阅读的JSON
JSON和XML可以互转
支持:net Standard 2.0,。net 2,。net 3.5,。net 4,。net 4.5, Silverlight, Windows Phone和Windows 8 Store

Unity中使用Newtonsoft.Json进行xml与json互转

搭建demo场景

在这里插入图片描述

编写脚本实现json与xml互转的方法

test脚本:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Xml;
using UnityEngine.UI;

public class test : MonoBehaviour 
{
    public Button JSONwriterBtn;
    public Button XMLwriterBtn;
    private string xmlPath;
    private string jsonPath;
    public Text xmlText;
    public Text jsonText;
    XmlDocument document;

    private void Start()
    {
        xmlPath = Application.dataPath + "/data/question.xml";
        jsonPath = Application.dataPath + "/data/question.json";
        document = new XmlDocument();
        document.Load(xmlPath);//解析xml数据
        xmlText.text = document.InnerXml;
        JSONwriterBtn.onClick.AddListener(XmlToJson);
        XMLwriterBtn.onClick.AddListener(JsonToXml);
    }
    /// <summary>
    /// xml转json的方法
    /// </summary>
    public void XmlToJson()
    {
        string jsonStr = Newtonsoft.Json.JsonConvert.SerializeXmlNode(document, Newtonsoft.Json.Formatting.Indented,false);//数据序列化为Json字符串
        jsonText.text = jsonStr;
        System.IO.File.WriteAllText(jsonPath, jsonStr);//将转换过来的json数据写入json文件
    }
    /// <summary>
    /// json转xml的方法
    /// </summary>
    public void JsonToXml()
    {
        string path= Application.dataPath + "/data/toxml.xml";
        XmlDocument xml = Newtonsoft.Json.JsonConvert.DeserializeXmlNode(jsonText.text, "");//json数据反序列化为xml数据
        xml.Save(path);
    }
}

脚本里首先把question.xml数据加载到XmlDocument对象里,然后调用Newtonfost.JSON包方法JsonConvert.SerializeXmlNode将xml文档转换为json格式的文本字符串,然后显示到Text上,并且通过IO流将json数据写入到question.json文件中,后面再将json字符串转为xml字符串,保存到toxml.xml文件中。

这里我挂载在panel上,记得拖拽对象,不然会报空哦!
在这里插入图片描述

demo演示效果

请添加图片描述
原始xml文件:
在这里插入图片描述

转换的json文件:
在这里插入图片描述
转换的xml文件:
在这里插入图片描述

demo源工程

demo下载
Newtonsoft.Json插件可在demo工程中找到,有问题可以问题哦,喜欢记得一键三连呀!谢谢关注哦。

关于Newtonsoft.Json插件的获取及其一些常用方法

插件获取

1、从官网获取Newtonsoft.Json插件
官网地址
在这里插入图片描述
更多功能用法也可查看官方文档:
官方文档
2、本文用到的演示demo工程有Newtonsoft.Json插件,但可能不是最新的。
3、在Visual Studio中,可以通过NuGet Package Manager获得:
在Visual Studio菜单中,进入Tools/NuGet Package Manager/Manager NuGet Packages for Solution。选择Newtonsoft.json包,选择你所需要的版本并为你的unity工程进行安装。
在这里插入图片描述

常用方法

  • 对象序列化Json字符串:

JsonConvert.SerializeObject(object value):
Json字符串反序列化为对象:

JsonConvert.DeserializeObject(string value):
JsonConvert.DeserializeObject(string value)

  • XML序列化为Json字符串:

JsonConvert.SerializeXmlNode(XmlNode node)
Json反序列化为XML对象:

JsonConvert.DeserializeXmlNode(string value)

  • 参数formatting指的是Json字符串格式有没有缩进
  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2022-04-22 19:10:32  更:2022-04-22 19:11:48 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 13:40:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码