Json操作

Json. 文件,.Json

使用固定格式来存储和表示数据

 

Json : , : {} “” []

1.对象用键值对表示. “键”:值。键字符串

2.数据由逗号分隔开

3.花括号保存对象

4.方括号保存数组

 

物品:名字,攻击力,类型

对象:键值对表示

键值对中的键名写在前面并且必须用双引号“”包裹,使用冒号:分割键和值

例如:

{“name” : “屠龙刀”, “atk” : 100, “type” : “刀”}

 

json值:

1.string字符串(用双引号包裹)

2.number数字(整型,浮点数)

3.object对象 (使用花括号包裹数据)

4.array数组 (方括号内)

5.bool布尔 (true, false)

6.null

 

 

数组:数组在json中是以防括号[]包裹起来的内容,一般表现为:

[ “jave”,”C#”,”C++”,”VB” ]

[{“name” : “java”},{“name” : “C#”},{“name”:”C++”}]

 

复杂:

{“list” : [{“name”: “java”}, {“name”:”c++”}]}

 

 

Json中的键值对对应c#的类对象

Json转object - JsonUtility.FromJson<T>()

T:就是你需要转成的object

参数:就是string,就是json字符串

如果需要转换键名一定要跟类里的变量名相同(区分大小写),只能转公有的非静态变量,不能转属性(get,set)。注意json中的num类型不要用001,会报错,直接使用1

 

 

注意,如果想要转换一个类中的类对象变量,需要使用[System.Serializable]对这个类对象变量的类进行标记,证明该类是可序列化的

[System.Serializable]

public class ItemData {}

public class ItemParent {

public ItemData itemData;

}

 

 

c#的object转json -JsonUtility.ToJson()

第一个参数:object:需要转的类对象

第二个参数:bool:可以选择是否转出的json串进行格式化

 

 

数组转json

在一个类中去定义一个数组或者List,然后去转换这个类对象从而实现数组的转换

转换结果:{“list”:[……]}

 

先建立一个类,类里有数组,然后实例化类对数组进行赋值,最后转实例化出来的对象,就实现转数组

{"arr":[......]}

 

 

json转数组

注意: 这种格式[“a”,”b”,”b”]不能转

{“arr”:[…..]}:定义一个类,类里定义一个数组或list,通过这种方式去转换

 

{"arr”:[“1”,”2”,”s”,”f”]}:有一个类,类里有一个变量arr的数组

:可以用两种方式接受(array,List)

 

 

[System.NonSerialized]:不可序列化

[System.Serializable]:特性,可序列化的

 

序列化和反序列化

序列化:把对象转换为字节序列的过程叫序列化

反序列化:把字节序列转换为对象的过程叫反序列化

 

主要用途:

把对象的数据永久保存到硬盘上

 

 

总结:

可能出现错误信息:

1.NullReferenceException: 原因是对于类没进行序列化

2.ArgumentException:json的格式错误

 

使用JsonUtility的注意事项

1.注意键名和类的对象名必须一致,键名需要使用引号包裹

2.可被序列化的类,一定要用[System.Serializable]标记

3.只能序列化类中的公有非静态变量,属性不行。

4.如果转json的过程中想要有格式的json,ToJson的第二个参数true。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值