插件介绍
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);
xmlText.text = document.InnerXml;
JSONwriterBtn.onClick.AddListener(XmlToJson);
XMLwriterBtn.onClick.AddListener(JsonToXml);
}
public void XmlToJson()
{
string jsonStr = Newtonsoft.Json.JsonConvert.SerializeXmlNode(document, Newtonsoft.Json.Formatting.Indented,false);
jsonText.text = jsonStr;
System.IO.File.WriteAllText(jsonPath, jsonStr);
}
public void JsonToXml()
{
string path= Application.dataPath + "/data/toxml.xml";
XmlDocument xml = Newtonsoft.Json.JsonConvert.DeserializeXmlNode(jsonText.text, "");
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工程进行安装。
常用方法
JsonConvert.SerializeObject(object value): Json字符串反序列化为对象:
JsonConvert.DeserializeObject(string value): JsonConvert.DeserializeObject(string value)
JsonConvert.SerializeXmlNode(XmlNode node) Json反序列化为XML对象:
JsonConvert.DeserializeXmlNode(string value)
- 参数formatting指的是Json字符串格式有没有缩进
|