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);}/// <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字符串格式有没有缩进
Unity使用Newtonsoft.Json插件实现XML与JSON数据的互转相关推荐
- 【Notepad】Notepad++ 安装XML/Json插件,格式化xml/json文件
XML插件安装 1. 打开Notepad++ 软件 2. 菜单栏选择插件,选择"插件管理" 3. 搜索 XML 插件,找到该插件后,勾选该文件Npp Xml Treeview,点击 ...
- SQL2008使用json.net实现XML与JSON互转
借助CLR,首先实现字符串的互转,然后使用存储过程实现JSON2table public class JsonFunction { /// <summary> ...
- xml转换为json格式时,如何将指定节点转换成数组 Json.NET
使用Json.NET转换xml成json时,如果xml只有单个节点,但json要求是数组形式[], JsonConvert.SerializeXmlNode 并不能自动识别 示例如下: RecordA ...
- JSON解析与XML解析的区别
JSON与XML的区别比较 1.定义介绍 (1).XML定义 扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记 ...
- java定义json数组_Java面试题:json该如何定义?json与xml的区别有哪些?
什么是json Json是一种字符串数据格式,一般用于数据传输格式. json字符串中[]对应JSONArray, {}对应JSONObject json与xml的区别 (1).可读性方面. JSON ...
- XML和JSON的比较
XML和JSON的比较 XML与JSON都可以用来描述或者存储数据,两者都有各自的优点,使用场景取决于需求. 描述 XML 可扩展标记语言Extensible Markup Language,是一种用 ...
- XML和JSON的使用总结
1.定义介绍 (1).XML定义 扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据.定义数据类型,是一种允 ...
- xml和json转换的在线工具
Xml与Json在线转换工具,Xml和Json互转-沐杉实用工具 Xml和Json互转工具: 1.支持将Xml数据转为Json字符串格式 2.支持将Json字符串转换为Xml格式的数据 3.Json转 ...
- XML转Json 设置指定节点为数组
原XML <response><itemList><item><number>5</number></item></ite ...
最新文章
- NHibernate.Profiler 使用教程
- 提高jQuery执行效率
- 【采用】【风险管理】(第一篇)风险管理核心指标
- 计算机听不到音乐怎么回事,电脑听不到声音怎么解决 电脑听不到声音的处理方法...
- php html5 css样式,怎么在html页面写css样式表
- DCMTK:存储服务类用户(C-STORE操作)
- oracle查询使用or,查询视图,使用or就用不上索引
- JDK 8功能的可疑方面
- Spark入门实战系列--3.Spark编程模型(上)--编程模型及SparkShell实战
- [USACO16OPEN]262144
- mysql php sdk_PHP连接MySQL数据库
- Express框架学习笔记-get请求中参数的获取
- 继电器写法c语言单片机,51单片机-继电器编程
- thinkphp5.1接入银联支付
- Unity 涂涂乐(不使用shader)
- VVC/JEM代码学习26:m_pcTrQuant-transformN*N
- 安卓打开rpm文件_android打开文件及打开方式(打开程序列表) | 学步园
- 监听pda扫描_android系统PDA扫描枪,扫描完成后自带回车,为什么回车监听第一次不起作用,手动提交一次后才能正常提交...
- 1.生命游戏(netlogo)
- JDK下载及环境配置
热门文章
- js:如何监听history的pushState方法和replaceState方法。(高阶函数封装+自定义事件)
- Mac 更改shell(bash 改为zsh)以及附带环境
- 熔断器熔断时间标准_快速熔断器型号_快速熔断器熔断时间_快速熔断器
- EXCEL中对一列数据每隔n行提取数据出来
- [Python]安装/升级pip/pip3
- O2OA二次开发(一)前后端源码打包部署命令
- 官方:最好的版本!Python 3.11正式版来了!
- Vue定时器设置 Vue简单定时任务
- 券商接口量化交易策略——KDJ指标
- 大白话说期权——除了买涨买跌,我们还能怎么交易?二元期权又是什么鬼?