Json C#解析
介绍
项目中数据格式如果是是Json格式,推荐大家使用LitJson和Newtonsoft.json进行解析
库的详细介绍和下载地址
推荐使用VS自带的Nuget来使用
Newtonsoft.Json:https://www.newtonsoft.com/json
LitJson:https://litjson.net/
序列化和反序列化
序列化:将对象状态转换成可保持或传输的格式的过程。
反序列化:将流转换成对象。
通俗讲,序列化用于数据传输,反序列用户数据存储。
Json使用
打开Visual Studio,选择IDE上面的工具选项--》Nuget包管理器--》管理解决方案的Nuget程序包
Json示例
简单解析
初始数据
{
"total": 1,
"code": 0,
"rows": [
{
"id": 1013,
"name": "QB",
"version": "1.0.2",
"size": 707608
}
]
}
LitJson源码
using LitJson2;
String str = "{\"total\":1,\"code\":0,\"rows\":[{\"id\":1013,\"name\":\"QB\",\"version\":\"1.0.2\",\"size\":707608}]}";
public static void LitJson(string DataJson)
{
JsonData json = JsonMapper.ToObject(DataJson);
if((int)json["code"]==0) //判断一级目录下code是否为0
{
JsonData data = json["rows"][0];
int id = (int)data["id"];
string name = data["name"].ToString();
Console.WriteLine(id+name);
}
Console.ReadLine();
}
Newtonsoft.json简单解析
using Newtonsoft.Json.Linq;
String str = "{\"total\":1,\"code\":0,\"rows\":[{\"id\":1013,\"name\":\"QB\",\"version\":\"1.0.2\",\"size\":707608}]}";
public static void Newtonsoft(string DataJson)
{
JObject json = JObject.Parse(DataJson);
if ((int)json["code"] == 0) //判断一级目录下code是否为0
{
string dataS = json["rows"][0].ToString();
JObject data = JObject.Parse(dataS);
int id = (int)data["id"];
string name = data["name"].ToString();
Console.WriteLine(id + name);
}
Console.ReadLine();
}
运行结果
{
"total": 1,
"code": 0,
"rows": [
{
"id": 1013,
"name": "QB",
"version": "1.0.2",
"size": 707608
}
]
}
using LitJson2;
String str = "{\"total\":1,\"code\":0,\"rows\":[{\"id\":1013,\"name\":\"QB\",\"version\":\"1.0.2\",\"size\":707608}]}";
public static void LitJson(string DataJson)
{
JsonData json = JsonMapper.ToObject(DataJson);
if((int)json["code"]==0) //判断一级目录下code是否为0
{
JsonData data = json["rows"][0];
int id = (int)data["id"];
string name = data["name"].ToString();
Console.WriteLine(id+name);
}
Console.ReadLine();
}
using Newtonsoft.Json.Linq;
String str = "{\"total\":1,\"code\":0,\"rows\":[{\"id\":1013,\"name\":\"QB\",\"version\":\"1.0.2\",\"size\":707608}]}";
public static void Newtonsoft(string DataJson)
{
JObject json = JObject.Parse(DataJson);
if ((int)json["code"] == 0) //判断一级目录下code是否为0
{
string dataS = json["rows"][0].ToString();
JObject data = JObject.Parse(dataS);
int id = (int)data["id"];
string name = data["name"].ToString();
Console.WriteLine(id + name);
}
Console.ReadLine();
}
Json序列化和反序列化
/// <summary>
/// 学生信息实体
/// </summary>
public class Student
{
public int ID { get; set; }
public string Name { get; set; }
public Class Class { get; set; }
}
/// <summary>
/// 学生班级实体
/// </summary>
public class Class
{
public int ID { get; set; }
public string Name { get; set; }
}
public static void Newtonsoft(string DataJson)
{
Student stu = new Student();
stu.ID = 1; //自己定义Json数据
stu.Name = "张三";
stu.Class = new Class() { ID = 0121, Name = "CS0121" };
//使用方法1
//实体序列化、反序列化
//结果:{"ID":1,"Name":"张三","Class":{"ID":121,"Name":"CS0121"}}
string json1 = JsonConvert.SerializeObject(stu);
Console.WriteLine(json1);
Student stu2 = JsonConvert.DeserializeObject<Student>(json1);
Console.WriteLine(stu2.Name + "---" + stu2.Class.Name);
Console.ReadLine();
}
项目下载地址
https://gitee.com/PErobin/DllTest.git
参考博客
C# Json序列化工具--Newtonsoft.Json的简介和使用https://blog.csdn.net/u011127019/article/details/51706619
Newtonsoft.Json解析json字符串处理(最清晰易懂的方法)https://blog.csdn.net/u010388954/article/details/79741069
Json C#解析的更多相关文章
- plist文件、NSUserDefault 对文件进行存储的类、json格式解析
========================== 文件操作 ========================== Δ一 .plist文件 .plist文件是一个属性字典数组的一个文件: .plis ...
- [开源 .NET 跨平台 数据采集 爬虫框架: DotnetSpider] [四] JSON数据解析
[DotnetSpider 系列目录] 一.初衷与架构设计 二.基本使用 三.配置式爬虫 四.JSON数据解析与配置系统 场景模拟 假设由于漏存JD SKU对应的店铺信息.这时我们需要重新完全采集所有 ...
- JSON数据解析 基础知识及链接收集
JSON数据解析学习 JSON介绍 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式. JSON 是存储和交换文本信息的语法.类似 XML.但是JSON 比 ...
- 浅谈JSON数据解析方法
JSON数据解析 JSON是什么?? 如何把JSON数据解析出来 如何把一个字典转换为JSON JSON详细介绍 JSON(JavaScript Object Notation) 是一种轻量级的数据交 ...
- JSON数据解析(转)
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,为Web应用开发提供了一种理想的数据交换格式. 本文将主要介绍在Android ...
- JSON数据解析(GSON方式) (转)
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,为Web应用开发提供了一种理想的数据交换格式. 在上一篇博文<Andro ...
- iOS - JSON 数据解析
iOS - JSON 数据解析 前言 NS_CLASS_AVAILABLE(10_7, 5_0) @interface NSJSONSerialization : NSObject @availab ...
- JSON.parse解析单引号名值对报错
今天整理代码的时候发现JSON.pare解析时会报了一个错误,而且很难找原因,调试了几分钟没有成功,猜测可能是单双引号引起的错误.修改了单双引号后程序正常运行了,现在记录下这个bug. 关于JSON. ...
- Android系列---JSON数据解析
您可以通过点击 右下角 的按钮 来对文章内容作出评价, 也可以通过左下方的 关注按钮 来关注我的博客的最新动态. 如果文章内容对您有帮助, 不要忘记点击右下角的 推荐按钮 来支持一下哦 如果您对文章内 ...
- JSON数据解析(转)
上篇随笔详细介绍了三种解析服务器端传过来的xml数据格式,而对于服务器端来说,返回给客户端的数据格式一般分为html.xml和json这三种格式,那么本篇随笔将讲解一下json这个知识点,包括如何通过 ...
随机推荐
- [.net core]1,asp.net core 的优势及特性
1.跨平台 支持windows ,linux .macOS 可以托管在iis,apache,Docker,或自宿在自己的进程 2.强大的IDE visual studio 或visual studio ...
- Vue中的组件直接的通信是如何实现的
组件关系可分为父子组件通信.兄弟组件通信 1.父组件传子组件 通过props属性来实现 2.子组件传父组件 子组件用$emit()来触发事件,父组件用$on()来监听子组件的事件 3.兄弟之间的通信 ...
- ros基础知识总结
参考于:ros官网教程 实验楼:ros机器人操作系统自主学习实验 基础知识 1 一个catkin程序包由什么组成? 一个程序包要想称为catkin程序包必须符合以下要求: 该程序包必须包含catkin ...
- vue实现轮播图
/* Start 基本样式*/ * { margin: 0; padding: 0; } ul { list-style-type: none; } body { font-size ...
- 2019-11-29-git-需要知道的1000个问题
title author date CreateTime categories git 需要知道的1000个问题 lindexi 2019-11-29 8:36:7 +0800 2018-2-13 1 ...
- 转载:一种云环境下SaaS软件部署方法及装置与流程
转载:http://www.xjishu.com/zhuanli/55/201710103925.html 本发明涉及云计算技术领域,特别是涉及一种云环境下SaaS软件部署方法及装置. 背景技术: 随 ...
- Chrome,firefox解除阻止视频自动播放
Firefox 66 将阻止自动播放音频和视频 PingWest品玩2月5日报道,从发布适用于桌面的 Firefox 66 和 Firefox for Android 开始,Firefox 将默认阻止 ...
- python中对RSA的加密和解密
首先,生成一对密钥,并保存 def create_keys(): # 生成公钥和私钥 (pubkey, privkey) = rsa.newkeys(1024) pub = pubkey.save_p ...
- idea 新手入门配置
1.配置新建类时,创建者信息 2.配置svn 1. 在idea中不显示无用的内容,配置如下 .hprof;.iml;.pyc;.pyo;.rbc;.yarb;~;.DS_Store;.git;.hg ...
- java 线程池 ScheduledExecutorService
ScheduledExecutorService执行周期性或定时任务 https://blog.csdn.net/u013851082/article/details/70207640