栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

Unity使用Newtonsoft.Json插件实现XML与JSON数据的互转

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Unity使用Newtonsoft.Json插件实现XML与JSON数据的互转

文章目录
      • 插件介绍
      • Unity中使用Newtonsoft.Json进行xml与json互转
        • 搭建demo场景
        • 编写脚本实现json与xml互转的方法
        • demo演示效果
        • demo源工程
      • 关于Newtonsoft.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);
    }
    /// 
    /// xml转json的方法
    /// 
    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文件
    }
    /// 
    /// json转xml的方法
    /// 
    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字符串格式有没有缩进
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/983261.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号