当前位置: 首页 > news >正文

政府网站集约化建设的要求/b站官方推广

政府网站集约化建设的要求,b站官方推广,有了网站源代码,怎么做网站开始动画Json概述 Json是什么? 全称:JavaScript对象简谱(JavaScript Object Notation) Json是国际通用的一种轻量级的数据交换格式 主要在网络通讯中用于传输数据,或本地数据存储和读取 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率 我们一般使用Json文件来…

Json概述

Json是什么?

全称:JavaScript对象简谱(JavaScript Object Notation)
Json是国际通用的一种轻量级的数据交换格式
主要在网络通讯中用于传输数据,或本地数据存储和读取
易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率
我们一般使用Json文件来记录和传输数据
Json文档就是使用Json格式配置填写的文档
后缀一般为.json
我们在游戏中可以把游戏数据按照Json的格式标准
存储在Json文档中,再将Json文档存储在硬盘上或者传输给远端
达到数据持久化或者数据传输的目的

Json文件格式

Json配置规则

用什么编辑Json文件?

只要能打开文档的软件都能打开Json文件
常用的一些编辑Json文件的方式
1、系统自带 – 记事本、写字板
2.通用文本编辑器 – Sublime Text等等
3.网页上的Json编辑器
注释

和C#中注释方式一致
1.双斜杠//注释内容
2.斜杠加星号/注释内容/
Json格式是一种键值对结构
在这里插入图片描述
语法规则
在这里插入图片描述
Json数据和类对象的对应关系
在这里插入图片描述
配置Json文档时的注意事项

1.如果数据表示对象那么最外层有大括号
2.一定是键值对形式
3.键一定是字符串格式
4.键值对用逗号分开
5.数组用[]包裹
6.对象用{}包裹

Excel转Json

Excel数据转Json数据

1.在百度或者Google搜索Excel转Json
2.选择在线转换的网站
比如:https://www.bejson.com/json/col2json/
3.进行转换
4.保存Json格式的数据

C#读取存储Json文件

JsonUtlity

JsonUtlity序列化

JsonUtlity是什么?
JsonUtlity 是Unity自带的用于解析Json的公共类
它可以
1.将内存中对象序列化为Json格式的字符串
2.将Json字符串反序列化为类对象

在文件中存读字符串
1、存储字符串到指定路径文件中
第一个参数:填写的是存储的路径(必须是存在的文件路径,如果没有对应文件夹会报错)
第二个参数:填写的是存储的字符串内容

File.WriteAllText(Application.persistentDataPath + "/Test.json","chx");

2、在指定路径文件中读取字符串

File.ReadAllText(Application.persistentDataPath + "/Test.json");

使用JsonUtlity进行序列化

[System.Serializable]
public class Student
{public int age;public string name;public Student(int age, string name){this.age = age;this.name = name;}
}public class MrTang
{public string name;public int age;public bool sex;public float testF;public double testD;public int[] ids;public List<int> ids2;public Dictionary<int, string> dic;public Dictionary<string, string> dic2;public Student s1;public List<Student> s2s;[SerializeField]private int privateI = 1;[SerializeField]protected int protectedI = 2;
}

序列化:把内存中的数据 存储到硬盘上
方法:
JsonUtility.ToJson(对象)
初始化数据

MrTang t = new MrTang();
t.name = "唐老狮";
t.age = 18;
t.sex = false;
t.testF = 1.4f;
t.testD = 1.4;t.ids = new int[] { 1, 2, 3, 4 };
t.ids2 = new List<int>() { 1, 2, 3 };
t.dic = new Dictionary<int, string>() { { 1, "123" }, { 2, "234" } };
t.dic2 = new Dictionary<string, string>() { { "1", "123" }, { "2", "234" } };t.s1 = null;//new Student(1, "小红");
t.s2s = new List<Student>() { new Student(2, "小明"), new Student(3, "小强") };

JsonUtility提供了现成的方法,可以把类对象序列化为Json字符串

string jsonStr = JsonUtility.ToJson(t);
File.WriteAllText(Application.persistentDataPath + "/MrTang.json",jsonStr);

注意:
1.float序列化时看起来会有一些误差
2.自定义类需要加上序列化特性[System.Serializable]
3.想要序列化私有变量 需要加上特性[SerializeField]
4.JsonUtility不支持字典
5.JsonUtlity存储null对象不会是null 而是默认值的数据

JsonUtility反序列化

使用JsonUtlity进行反序列化
反序列化:把硬盘上的数据 读取到内存中
方法:
JsonUtility.FromJson(字符串)

//读取文件中的Json字符串
jsonStr = File.ReadAllText(Application.persistentDataPath + "/MrTang.json");
//使用Json字符串内容转换成类对象
MrTang t2 = JsonUtility.FromJson(jsonStr,typeof(MrTang)) as MrTang;
MrTang t3 = JsonUtility.FromJson<MrTang>(jsonStr);

注意:
如果Json中数据少了,读取到内存中类对象中时不会报错
注意事项
1、JsonUtility无法直接读取数据集合
若想要读取,则将数据包裹到对象中,如下:
在这里插入图片描述

public class RoleData
{public List<RoleInfo> list;
}[System.Serializable]
3 个引用
public class RoleInfo
{public int hp;public int speed;public int volume;public string resName;public int scale;
}
RoleData data = JsonUtility.FromJson<RoleData>(jsonStr);

2、文本编码格式需要UTF-8,不然无法加载
总结
1.必备知识点 —— File存读字符串的方法 ReadAllText和WriteAllText
2.JsonUtlity提供的序列化反序列化方法 ToJson 和 FromJson
3.自定义类需要加上序列化特性[System.Serializable]
4.私有保护成员 需要加上[SerializeField]
5.JsonUtlity不支持字典
6.JsonUtlity不能直接将数据反序列化为数据集合
7.Json文档编码格式必须是UTF-8

LitJson

LitJson序列化

LitJson是什么?
它是一个第三方库,用于处理Json的序列化和反序列化
LitJson是c#编写的,体积小、速度快、易于使用
它可以很容易的嵌入到我们的代码中
只需要将LitJson代码拷贝到工程中即可
获取LitJson
1.前往LitJson官网
2.通过官网前往GitHub获取最新版本代码
3.将代码拷贝到Unity工程中 即可开始使用LitJson
在这里插入图片描述
使用LitJson进行序列化
方法:
JsonMapper.ToJson(对象)

public class Student2
{public int age;public string name;public Student2() { }public Student2(int age, string name){this.age = age;this.name = name;}
}public class MrTang2
{public string name;public int age;public bool sex;public float testF;public double testD;public int[] ids;public List<int> ids2;//public Dictionary<int, string> dic;public Dictionary<string, string> dic2;public Student2 s1;public List<Student2> s2s;private int privateI = 1;protected int protectedI = 2;
}

初始化:

MrTang2 t = new MrTang2();
t.name = "唐老狮";
t.age = 18;
t.sex = true;
t.testF = 1.4f;
t.testD = 1.4;t.ids = new int[] { 1, 2, 3, 4 };
t.ids2 = new List<int>() { 1, 2, 3 };
//t.dic = new Dictionary<int, string>() { { 1, "123" }, { 2, "234" } };
t.dic2 = new Dictionary<string, string>() { { "1", "123" }, { "2", "234" } };t.s1 = null;//new Student(1, "小红");
t.s2s = new List<Student2>() { new Student2(2, "小明"), new Student2(3, "小强") };

序列化:

string jsonStr = JsonMapper.ToJson(t);
File.WriteAllText(Application.persistentDataPath + "/MrTang2.json",jsonStr);

注意:
1.相对JsonUtlity不需要加特性
2.不能序列化私有变量
3.支持字典类型,字典的键建议都是字符串,因为Json的特点,Json中的键会加上双引号。
4.需要引用LitJson命名空间
5.LitJson可以准确的保存null类型

LitJson反序列化

使用LitJson反序列化
方法:
JsonMapper.ToObject(字符串)

jsonStr = File.ReadAllText(Application.persistentDataPath + "/MrTang2.json");
//JsonData是LitJson提供的类对象 可以用键值对的形式去访问其中的内容
JsonData data = JsonMapper.ToObject(jsonStr);
print(data["name"]);
print(data["age"]);
//通过泛型转换 更加的方便 建议使用这种方式
MrTang2 t2 = JsonMapper.ToObject<MrTang2>(jsonStr);

注意:
1.类结构需要无参构造函数,否则反序列化时报错
2.字典虽然支持 但是键在使用为数值时会有问题 需要使用字符串类型
注意事项
1.LitJson可以直接读取数据集合
RoleInfo.json:
在这里插入图片描述

public class RoleInfo2
{public int hp;public int speed;public int volume;public string resName;public int scale;
}
//1
jsonStr = File.ReadAllText(Application.streamingAssetsPath + "/RoleInfo.json");
RoleInfo2[] arr = JsonMapper.ToObject<RoleInfo2[]>(jsonStr);
//2
List<RoleInfo2> list = JsonMapper.ToObject<List<RoleInfo2>>(jsonStr);
//3
jsonStr = File.ReadAllText(Application.streamingAssetsPath + "/Dic.json");
Dictionary<string, int> dicTest = JsonMapper.ToObject<Dictionary<string, int>>(jsonStr);

json数据最后一行加逗号报错:
在这里插入图片描述

2.文本编码格式需要是UTF-8 不然无法加载
总结
1.LitJson提供的序列化反序列化方法 JsonMapper.ToJson和ToObject<>
2.LitJson无需加特性
3.LitJson不支持私有变量
4.LitJson支持字典序列化反序列化
5.LitJson可以直接将数据反序列化为数据集合
6.LitJson反序列化时 自定义类型需要无参构造
7.Json文档编码格式必须是UTF-8

JsonUtility和LitJson对比

JsonUtlity和LitJson相同点
1.他们都是用于Json的序列化反序列化
2.Json文档编码格式必须是UTF-8
3.都是通过静态类进行方法调用
JsonUtlity和LitJson不同点
1.JsonUtlity是Unity自带,LitJson是第三方需要引用命名空间
2.JsonUtlity使用时自定义类需要加特性,LitJson不需要
3.JsonUtlity支持私有变量(加特性),LitJson不支持
4.JsonUtlity不支持字典,LitJson支持(但是键只能是字符串)
5.JsonUtlity不能直接将数据反序列化为数据集合(数组字典),LitJson可以
6.JsonUtlity对自定义类不要求有无参构造,LitJson需要
7.JsonUtlity存储空对象时会存储默认值而不是null,LitJson会存null
如何选择两者
根据实际需求
建议使用LitJson
原因:LitJson不用加特性,支持字典,支持直接反序列化为数据集合,存储null更准确

相关文章:

Unity数据持久化之Json

Json概述 Json是什么? 全称:JavaScript对象简谱(JavaScript Object Notation) Json是国际通用的一种轻量级的数据交换格式 主要在网络通讯中用于传输数据,或本地数据存储和读取 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率 我们一般使用Json文件来…...

LeetCode 35.搜索插入位置

给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 示例 1: 输入: nums [1,3,5,6], target 5 输出: 2 示例 2: 输入…...

速来get!多微信聚合聊天功能大揭秘!

随着网络时代的发展&#xff0c;微信成为了职场中不可或缺的沟通工具&#xff0c;很多人都有着多个微信号&#xff0c;而要想高效管理这些账号&#xff0c;那就少不了工具的帮忙。 通过微信管理系统&#xff0c;可以轻松实现多个微信号聚合聊天&#xff0c;提高沟通效率。 1、…...

【跟我学RISC-V】(一)认识RISC-V指令集并搭建实验环境

目录 写在前面 一、RISC-V指令集简介 1、什么是ISA 2、有哪些ISA 3、CISC和RISC 4、什么是RISC-V 1. RISC 的起源 2. RISC-I 和 RISC-II 3. RISC 发展和商业化 4. RISC-V 的诞生 5、RISC-V生态的特点 6、RISC-V指令集的特点 1. 开源 2. 社区化 3. 设计简洁 4. 模…...

如何使用google.protobuf.Struct?

google.golang.org/protobuf/types/known/structpb 包提供了一种方式来创建和操作 google.protobuf.Struct 类型的数据。google.protobuf.Struct 是一种灵活的数据类型&#xff0c;可以表示任何结构化数据。 以下是如何使用 structpb 包的一些示例&#xff1a; 创建 Struct&a…...

Vue3 + TS + Element-Plus 封装的 Dialog 弹窗组件

弹窗组件中自定义了header 增加了全屏&#xff0c;svg-icon 没有的话可能会报错&#xff0c;换成自己的图标就可以 <template><el-dialog:dialogHeight"dialogHeight":title"dialogTitle"class"dialog min-w-70"v-model"dialogVi…...

大数据技术概述_4.大数据的应用领域

1.制造业的应用 制造业目前正在向信息化和自动化的方向发展。在产品的设计、生产和销售中&#xff0c;越来越多的企业使用计算机辅助设计&#xff08;CAD&#xff09;、计算机辅助制造&#xff08;CAM&#xff09;等软件&#xff0c;数控机床、传感器等设备&#xff0c;物料需求…...

ABB RobotStudio学习记录(一)新建工作站

RobotStudio新建工作站 最近遇到 虚拟示教器和 Rapid 代码不能控制 视图中机械臂的问题&#xff0c;其实是由于机械臂和工作站不匹配。以下是解决方法。 名称版本Robot Studio6.08 新建一个”空工作站“&#xff1b; 在目标位置新建一个目标文件夹 C:\solution\test&#xff0…...

雷达通信一体化(含WCSP2023会议论文集学习)

雷达通信一体化&#xff0c;又称雷达通信融合&#xff08;RADCOM&#xff09;&#xff0c;是一种新兴的技术&#xff0c;它将雷达&#xff08;通常用于探测和跟踪目标&#xff09;和无线通信&#xff08;用于传输信息&#xff09;的功能结合在一起。这种融合技术的主要目标是提…...

特斯拉擎天柱机器人:工厂自动化的未来

随着技术的进步&#xff0c;工业自动化已经逐步进入了一个新的纪元。特斯拉最近公布的擎天柱机器人Optimus的演示&#xff0c;不仅仅展示了一个高科技机器人的能力&#xff0c;更是向我们揭示了未来工厂的可能性。 特斯拉擎天柱机器人的功能展示 马斯克在最新的演示中向我们展…...

【管理咨询宝藏93】大型制造集团数字化转型设计方案

【管理咨询宝藏93】大型制造集团数字化转型设计方案 【格式】PDF版本 【关键词】国际咨询公司、制造型企业转型、数字化转型 【核心观点】 - 235页大型制造型集团数字化转型方案设计&#xff01;细节非常详尽&#xff0c;图表丰富&#xff01; - 系统架构必须采用成熟、具有国…...

【数学建模】天然肠衣搭配问题

2011高教社杯全国大学生数学建模竞赛D题 天然肠衣&#xff08;以下简称肠衣&#xff09;制作加工是我国的一个传统产业&#xff0c;出口量占世界首位。肠衣经过清洗整理后被分割成长度不等的小段&#xff08;原料&#xff09;&#xff0c;进入组装工序。传统的生产方式依靠人工…...

Dockerfile实践java项目

目的&#xff1a;用java项目测试dockerfil部署&#xff08;前提是安装好了docker&#xff09; 部署准备文件如下 1. java项目 java项目demo地址 https://gitee.com/xiaoqu_12/dockerfileDemo.git 或者百度网盘直接下载打包好的jar包 链接&#xff1a;https://pan.baidu.com/s/…...

【管理咨询宝藏96】企业数字化转型的中台战略培训方案

本报告首发于公号“管理咨询宝藏”&#xff0c;如需阅读完整版报告内容&#xff0c;请查阅公号“管理咨询宝藏”。 【管理咨询宝藏96】企业数字化转型的中台战略培训方案 【格式】PDF版本 【关键词】SRM采购、制造型企业转型、数字化转型 【核心观点】 - 数字化转型是指&…...

【webrtc】MessageHandler 3: 基于线程的消息处理:以sctp测试为例

消息处理可以用于模拟发包处理G:\CDN\rtcCli\m98\src\net\dcsctp\socket\dcsctp_socket_network_test.cc 这个实现中,onMessage还是仅对了一种消息进行处理,就是接收则模式下,打印带宽。当然,可能程序有多个消息,分别在不同的onmessage中执行?SctpActor:以一个恒定的速率…...

redisson 使用脚本实现将一个队列的元素弹出并推入另一个队列的原子操作

脚本逻辑&#xff1a; 从队列1弹出元素如果存在值则推入队列2否则返回null RScript script redissonClient.getScript(); final String scriptText """local value redis.call(lpop, KEYS[1]);if value thenredis.call(rpush, KEYS[2], value);return valu…...

基于Springboot的校园新闻管理系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的校园新闻管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构…...

Windows环境下基于CMake构建Lua

Windows环境下基于CMake构建Lua 环境&#xff01;&#xff01;&#xff01;注意&#xff1a; lua-5.4.6.tar.gz压缩包中&#xff0c;并未提供luac.c文件&#xff0c;无法构建luac.exe&#xff0c;可以从lua-5.4.5.tar.gz压缩包中拷贝使用 一、搭建基于CMake构建的Lua环境二、构…...

LLM⊗KG范式下的知识图谱问答实现框架思想阅读

分享一张有趣的图&#xff0c;意思是在分类场景下&#xff0c;使用大模型和fasttext的效果&#xff0c;评论也很逗。 这其实背后的逻辑是&#xff0c;在类别众多的分类场景下&#xff0c;尤其是在标注数据量不缺的情况下&#xff0c;大模型的收益是否能够比有监督模型的收益更多…...

ue引擎游戏开发笔记(35)——为射击添加轨道,并显示落点

1.需求分析&#xff1a; 我们只添加了开枪特效&#xff0c;事实上并没有实际的效果产生例如弹痕&#xff0c;落点等等。所以逐步实现射击的完整化&#xff0c;先从实现落点开始。 2.操作实现&#xff1a; 1.思路&#xff1a;可以这样理解&#xff0c;每次射击的过程是一次由摄…...

路由策略与路由控制

1.路由控制工具 匹配工具1&#xff1a;访问控制列表 &#xff08;1&#xff09;通配符 当进行IP地址匹配的时候&#xff0c;后面会跟着32位掩码位&#xff0c;这32位称为通配符。 通配符&#xff0c;也是点分十进制格式&#xff0c;换算成二进制后&#xff0c;“0”表示“匹配…...

JAVA版本的ATM编程问题记录

前段时间用C语言写了个银行ATM系统&#xff0c;还写了一篇文章记录了一些&#xff0c;C语言的ATM文章。后来又用IDEA写了一个JAVA版本的银行ATM。有人就会问为啥浪费这个时间写ATM呢&#xff1f;&#x1f9d0;其实是我本科代码没学好&#xff0c;所以现在想利用比较熟悉的ATM系…...

C#winfrom三层架构实现简单课程管理系统管理系统,三层架构实现增删改查

1. 项目展示 1.1登录展示 1.2添加课程信息展示 1.3课程信息管理-查询-修改-删除 1.4修改登录密码 2.项目功能介绍&#xff08;图&#xff09; 3.数据库设计 3.1 教师表设计 3.2 课程分类表 3.3 课程信息表 4. 创建样式界面 winfrom 超详细UI创建过程 实现双色球选号器UI界面…...

AI技术赋能下的视频监控方案是如何解决新能源汽车充电难问题的?

一、方案背景 刚刚结束的第十八届北京车展异常火爆&#xff0c;其中一组与汽车有关的数字让人格外关注。根据乘联会2024年4月19日公布的最新数据&#xff0c;全国乘用车市场零售达到51.6万辆&#xff0c;其中新能源车的销量约为26万辆&#xff0c;市场渗透率达到50.39%。 这意味…...

长难句打卡5.6

For H&M to offer a $5.95 knit miniskirt in all its 2,300-plus stores around the world, it must rely on low-wage overseas labor, order in volumes that strain natural resources, and use massive amounts of harmful chemicals. 翻译:H&M若要在其全球总共2…...

PDF编辑器软件常见问题(技巧)总结

目录 问题pdf高级编辑器中编辑文字时" 格式 " 如何出现? 待续、更新中 问题 pdf高级编辑器中编辑文字时" 格式 " 如何出现? shiftF4 待续、更新中 1 顿号“、” : 先使用ctrl. 再使用一遍切回 2 下标: 在数字两边加上 ~ 即可 , 21 3 上标: 2 0 2^{0} …...

Dive into Deep Learning-优化算法(1)

优化和深度学习的关系 优化是最小化损失函数&#xff0c;而深度学习的目标是在给定有限数据量的情况下寻找合适的模型&#xff0c;分别对应着训练误差和泛化误差&#xff1b;需要注意过拟合&#xff1b; 优化面临的挑战&#xff08;求解数值解&#xff09; 局部最小值&#…...

Partisia Blockchain 生态首个zk跨链DEX现已上线

在5月1日&#xff0c;由Partisia Blockchain与zkCross创建合作推出的Partisia zkCrossDEX在Partisia Blockchain生态正式上线。Partisia zkCrossDEX是Partisia Blockchain上重要的互操作枢纽&#xff0c;其融合了zkCross的zk技术跨链互操作方案&#xff0c;并利用Partisia Bloc…...

.NET操作 Access (MSAccess)

注意&#xff1a;新项目推荐 Sqlite &#xff0c;Access需要注意的东西太多了&#xff0c;比如OFFICE版本&#xff0c;是X86还是X64 连接字符串 ProviderMicrosoft.ACE.OleDB.15.0;Data Source"GetCurrentProjectPath"\\test.accdb//不同的office版本 连接字符串有…...

shell脚本,删除30天以前的日志,并将日志推送到nas,但运行出现/bin/bash^M。

删除30天以前的日志 将日志推送到nas中&#xff0c;然后删除pod中的日志 pod挂载到本地 运行出现/bin/bash^M 1、删除30天以前的日志&#xff1a; #! /bin/bash# 定义源日志目录 LOG_DIR/home/log/ # 删除日志 find $LOG_DIR -type f -name "*.log" -mtime 30 -exec…...