博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Json解析
阅读量:6680 次
发布时间:2019-06-25

本文共 4012 字,大约阅读时间需要 13 分钟。

在这里插入图片描述

在这里插入图片描述
json 官网:http://www.json.org/json-zh.html
在这里插入图片描述

01:生成text文本

[    {        "id": 1,        "name": "BeJson",        "damage": 30    },    {        "id": 2,        "name": "嘿嘿嘿",        "damage": 100    },    {        "id": 3,        "name": "嘿嘿嘿",        "damage": 200    }]

02:解析

class Program    {        static void Main(string[] args)        {            string text = File.ReadAllText("JsonData.txt");                //data代表一个数组            JsonData data=JsonMapper.ToObject(text);            //item代表一个对象            foreach (JsonData item in data)            {                int id = int.Parse(item["id"].ToString());                string name = item["name"].ToString();                int damage = int.Parse(item["damage"].ToString());                Console.WriteLine("id:" + id + "name:" + name + "damage:" + damage);            }            Console.ReadKey();        }         }

在这里插入图片描述

03:使用泛型解析(json里面的属性值和对应类里面的属性值要保持一致)

namespace Json解析02{    class Program    {        static void Main(string[] args)        {            string text = File.ReadAllText("JsonData.txt");            Skill[] skills=JsonMapper.ToObject
(text); foreach (Skill skill in skills) { Console.Write(skill.id); Console.WriteLine(); Console.Write(skill.name); Console.WriteLine(); Console.Write(skill.damage); } Console.ReadKey(); } } public class Skill { public int id; public string name; public int damage; }}

04:当text是一个对象时候的解析

//Player.txt

{    "Name": "二连",    "Level": 500,    "Age": 20,    "SkillList": [        {            "id": 1,            "name": "BeJson",            "damage": 30        },        {            "id": 2,            "name": "嘿嘿嘿",            "damage": 100        },        {            "id": 3,            "name": "嘿嘿嘿",            "damage": 200        }    ]}
namespace Json解析02{    class Program    {        static void Main(string[] args)        {            string text = File.ReadAllText("Player.txt");            Player player=JsonMapper.ToObject
(text); Console.WriteLine(player.Age); Console.WriteLine(player.Name); Console.WriteLine(player.Level); foreach (var item in player.SkillList) { Console.WriteLine(item); } Console.ReadKey(); } } public class Skill { public int id; public string name; public int damage; public override string ToString() { return $"{nameof(id)}: {id}, {nameof(name)}: {name}, {nameof(damage)}: {damage}"; } } public class Player { public string Name; public int Level; public int Age; public List
SkillList; public override string ToString() { return $"{nameof(Name)}: {Name}, {nameof(Level)}: {Level}, {nameof(Age)}: {Age}, {nameof(SkillList)}: {SkillList}"; } }}

在这里插入图片描述

public void SaveLevelFileByJson()    {
LevelInfo levelInfoGo = CreateLevelInfoGo(); string filePath = Application.streamingAssetsPath + "/Json/Level/" + "Level" + bigLevelID.ToString() + "_" + levelID.ToString() + ".json"; string saveJsonStr = JsonMapper.ToJson(levelInfoGo); StreamWriter sw = new StreamWriter(filePath); sw.Write(saveJsonStr); sw.Close(); }#endif //读取关卡文件解析json转化为LevelInfo对象 public LevelInfo LoadLevelInfoFile(string fileName) {
LevelInfo levelInfo = new LevelInfo(); string filePath=Application.streamingAssetsPath+ "/Json/Level/" + fileName; if (File.Exists(filePath)) {
StreamReader sr = new StreamReader(filePath); string jsonStr = sr.ReadToEnd(); sr.Close(); levelInfo = JsonMapper.ToObject
(jsonStr); return levelInfo; } Debug.Log("文件加载失败,加载路径是"+filePath); return null; }

转载地址:http://acrxo.baihongyu.com/

你可能感兴趣的文章
destoon 读取当前栏目名称
查看>>
初步认识JPA
查看>>
Gson的使用-android
查看>>
我的友情链接
查看>>
HTC推出革新的HTC旗舰级Android智能手机
查看>>
BYOD管理套件VMware的捆绑应用程序
查看>>
java 通过httpClient调用后端逻辑或者下载附件
查看>>
Nagios集成Selenium
查看>>
快速大规模无光驱安装Linux操作系统就选“PXE自动安装”
查看>>
我的友情链接
查看>>
switch&router-四层模式
查看>>
新博安卓培训的第一天
查看>>
游戏中常用到的碰撞检测帮助类
查看>>
访问默认共享
查看>>
01262015要看的blog——oracle tuning
查看>>
[信息图]电子商务营销的6大步骤
查看>>
Webdriver(selenium2.0)+NUnit+C# (一)
查看>>
C语言的基本输入输出
查看>>
Hibernate注释大全收藏
查看>>
通过openfiler模拟存储
查看>>