文章目录

  • 插件介绍
  • 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数据的互转相关推荐

  1. 【Notepad】Notepad++ 安装XML/Json插件,格式化xml/json文件

    XML插件安装 1. 打开Notepad++ 软件 2. 菜单栏选择插件,选择"插件管理" 3. 搜索 XML 插件,找到该插件后,勾选该文件Npp Xml Treeview,点击 ...

  2. SQL2008使用json.net实现XML与JSON互转

    借助CLR,首先实现字符串的互转,然后使用存储过程实现JSON2table public class JsonFunction    {        /// <summary>      ...

  3. xml转换为json格式时,如何将指定节点转换成数组 Json.NET

    使用Json.NET转换xml成json时,如果xml只有单个节点,但json要求是数组形式[], JsonConvert.SerializeXmlNode 并不能自动识别 示例如下: RecordA ...

  4. JSON解析与XML解析的区别

    JSON与XML的区别比较 1.定义介绍 (1).XML定义 扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记 ...

  5. java定义json数组_Java面试题:json该如何定义?json与xml的区别有哪些?

    什么是json Json是一种字符串数据格式,一般用于数据传输格式. json字符串中[]对应JSONArray, {}对应JSONObject json与xml的区别 (1).可读性方面. JSON ...

  6. XML和JSON的比较

    XML和JSON的比较 XML与JSON都可以用来描述或者存储数据,两者都有各自的优点,使用场景取决于需求. 描述 XML 可扩展标记语言Extensible Markup Language,是一种用 ...

  7. XML和JSON的使用总结

    1.定义介绍 (1).XML定义 扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据.定义数据类型,是一种允 ...

  8. xml和json转换的在线工具

    Xml与Json在线转换工具,Xml和Json互转-沐杉实用工具 Xml和Json互转工具: 1.支持将Xml数据转为Json字符串格式 2.支持将Json字符串转换为Xml格式的数据 3.Json转 ...

  9. XML转Json 设置指定节点为数组

    原XML <response><itemList><item><number>5</number></item></ite ...

最新文章

  1. NHibernate.Profiler 使用教程
  2. 提高jQuery执行效率
  3. 【采用】【风险管理】(第一篇)风险管理核心指标
  4. 计算机听不到音乐怎么回事,电脑听不到声音怎么解决 电脑听不到声音的处理方法...
  5. php html5 css样式,怎么在html页面写css样式表
  6. DCMTK:存储服务类用户(C-STORE操作)
  7. oracle查询使用or,查询视图,使用or就用不上索引
  8. JDK 8功能的可疑方面
  9. Spark入门实战系列--3.Spark编程模型(上)--编程模型及SparkShell实战
  10. [USACO16OPEN]262144
  11. mysql php sdk_PHP连接MySQL数据库
  12. Express框架学习笔记-get请求中参数的获取
  13. 继电器写法c语言单片机,51单片机-继电器编程
  14. thinkphp5.1接入银联支付
  15. Unity 涂涂乐(不使用shader)
  16. VVC/JEM代码学习26:m_pcTrQuant-transformN*N
  17. 安卓打开rpm文件_android打开文件及打开方式(打开程序列表) | 学步园
  18. 监听pda扫描_android系统PDA扫描枪,扫描完成后自带回车,为什么回车监听第一次不起作用,手动提交一次后才能正常提交...
  19. 1.生命游戏(netlogo)
  20. JDK下载及环境配置

热门文章

  1. js:如何监听history的pushState方法和replaceState方法。(高阶函数封装+自定义事件)
  2. Mac 更改shell(bash 改为zsh)以及附带环境
  3. 熔断器熔断时间标准_快速熔断器型号_快速熔断器熔断时间_快速熔断器
  4. EXCEL中对一列数据每隔n行提取数据出来
  5. [Python]安装/升级pip/pip3
  6. O2OA二次开发(一)前后端源码打包部署命令
  7. 官方:最好的版本!Python 3.11正式版来了!
  8. Vue定时器设置 Vue简单定时任务
  9. 券商接口量化交易策略——KDJ指标
  10. 大白话说期权——除了买涨买跌,我们还能怎么交易?二元期权又是什么鬼?