c#解析json字符串数组_C#解析JSON字符串总结
JSON文件读取到内存中就是字符串,.NET操作JSON就是生成与解析JSON字符串。
操作JSON通常有以下几种方式:
1. 原始方式:按照JSON字符串自己来解析。
2. 通用方式【★★★★★】:这种方式是使用开源的类库Newtonsoft.Json(下载地址http://json.codeplex.com/)。下载后添加dll引用就能用。
首先添加引用:using Newtonsoft.Json;
新增:本地dll下载:Newtonsoft.Json.rar 引用:using Newtonsoft.Json;
1.Json字符串普通格式解析(常用)
string jsonText = "{\"zone\":\"海淀\",\"zone_en\":\"haidian\"}";
JObject jo = (JObject)JsonConvert.DeserializeObject(jsonText);
string zone = jo["zone"].ToString();
string zone_en = jo["zone_en"].ToString();
其他写法:
int retCode = -1;//返回码,0表示成功,其他表示失败
string returnMessage = string.Empty;//返回消息,对返回码的描述
string jsonStr = "{\"RetCode\":3,\"ReturnMessage\":\"测试消息\"}";
JavaScriptObject jsonObj = JavaScriptConvert.DeserializeObject(jsonStr);
if (jsonObj != null)
{
if (jsonObj.ContainsKey("RetCode") && jsonObj["RetCode"] != null)
{
int.TryParse(jsonObj["RetCode"].ToString(), out retCode);
}
if (jsonObj.ContainsKey("ReturnMessage") && jsonObj["ReturnMessage"] != null)
{
returnMessage = jsonObj["ReturnMessage"].ToString();
}
}
解析Josn列表数据:
public static JArray GetData2JArray(string url, string key)
{
string jsonData = HttpHelper.HttpGet(url, "", "gb2312");
JObject obj = JObject.Parse(jsonData);
return (JArray)obj[key];
}
以上Json的返回的数据:
{"Pictures":
[
{"PictureSrc":"http://i.ssimg.cn/ssupload/2016/10/17/707f464645f44b4cb9882b75d23ed8f9.png","PictureLink":"","PictureAlt":"通光线缆 36.50%","PictureTitle":"实盘赛冠军直播室","PictureTitleLink":"132","PictureSummary":"荷塘月色直播室是由野马和荷塘月色夫妻俩共同直播的直播室,野马以短线股为主,荷塘月色以中线股为主,擅于抓涨停板和翻倍牛股。","OrderTime":"2016-10-17 13:16:04"},
{"PictureSrc":"http://i.ssimg.cn/ssupload/2016/10/17/4c38b0a2604e49beaf1e4f7885e6a1a4.png","PictureLink":"","PictureAlt":"天际股份 6.38%","PictureTitle":"证券之星最强王牌播主","PictureTitleLink":"1716","PictureSummary":"深入股海数年,拥有十余年的实战经验。2014年证券之星播主年度冠军,各大一线网站著名博客,多次接受电视台专访。","OrderTime":"2016-10-17 13:12:34"}
]
}
解析成自定义实体类列表:
#region 获取手编列表
///
/// 获取手编列表
///
///
public static List GetHandWriteList()
{
List list = new List();
var data = Common.LiveCastUserManageAPI.GetData2JArray(CmsApiSite, "Pictures");
if (data != null && data.Count > 0)
{
foreach (var item in data)
{
Pictures p = new Pictures();
if (!string.IsNullOrEmpty(item["PictureSrc"].ToString()))
{
p.PictureSrc = item["PictureSrc"].ToString();
}
list.Add(p);
}
}
return list;
}
#endregion
Pictures实体类的定义:
public classPictures
{///
/// http://i.ssimg.cn/ssupload/2016/10/17/e6500633d4cb4a918c8f45e2c71ab8f6.jpg
///
public string PictureSrc { get; set; }///
///
///
public string PictureLink { get; set; }///
///中色股份 53%///
public string PictureAlt { get; set; }///
///四季度翻倍牛股在哪里?///
public string PictureTitle { get; set; }///
///meihaoxiangwang///
public string PictureTitleLink { get; set; }///
///荷塘月色直播室是由野马和荷塘月色夫妻俩共同直播的直播室,野马以短线股为主, 荷塘月色以中线股为主,擅于抓涨停板和翻倍牛股。///
public string PictureSummary { get; set; }///
///股票名称///
public string StockName { get; set; }///
///股票收益率///
public string Rate { get; set; }///
///昵称///
public string NickName { get; set; }///
///头像///
public string HeadImg { get; set; }///
///直播室名称///
public string CastRoomName { get; set; }
}
View Code
JSON生成实体类工具:点击>>
解析JsonArrayList
2.Json字符串嵌套格式解析
string jsonText = "{\"beijing\":{\"zone\":\"海淀\",\"zone_en\":\"haidian\"}}";
JObject jo = (JObject)JsonConvert.DeserializeObject(jsonText);
string zone = jo["beijing"]["zone"].ToString();
string zone_en = jo["beijing"]["zone_en"].ToString();
3.Json字符串数组格式解析
string jsonArrayText = "[{'a':'a1','b':'b1'},{'a':'a2','b':'b2'}]"; //"[{'a':'a1','b':'b1'}]即使只有一个元素,也需要加上[]
string jsonArrayText = "[{\"a\":\"a1\",\"b\":\"b1\"},{\"a\":\"a2\",\"b\":\"b2\"}]"; //上面写法和此写法效果一样
JArray jArray = (JArray)JsonConvert.DeserializeObject(jsonArrayText);//jsonArrayText必须是带[]数组格式字符串
string str = jArray[0]["a"].ToString();
3. 内置方式:使用.NET Framework 3.5/4.0中提供的System.Web.Script.Serialization命名空间下的JavaScriptSerializer类进行对象的序列化与反序列化,很直接。
Project p1 = new Project() { Input = "stone", Output = "gold" };
JavaScriptSerializer serializer = new JavaScriptSerializer();
string jsonStr = serializer.Serialize(p1); //序列化:对象=>JSON字符串
Response.Write(jsonStr);
Project p2 = serializer.Deserialize(jsonStr); //反序列化:JSON字符串=>对象
Response.Write(p1.Input + "=>" + p2.Output);
注意:如果使用的是VS2010,则要求当前的工程的 Target Framework要改成.Net Framework 4,不能使用Client Profile。当然这个System.Web.Extensions.dll主要是Web使用的,直接在Console工程中用感觉有点浪费资源。
此外,从最后一句也可以看到,序列化与反序列化是深拷贝的一种典型的实现方式。
c#解析json字符串数组_C#解析JSON字符串总结相关推荐
- C++接收字符串数组_C语言处理字符串的7个函数
C库提供了多个处理字符串的函数,ANSI-C把这些函数的原型放在string.h头文件中.其中最常用的函数有strlen().strcat().strcmp().strncmp().strcpy()和 ...
- c#解析json字符串数组_c#解析json字符串处理(最清晰易懂的方法)
(完整代码在文末,引用库文件后可直接运行~) 需求: 假设有如下json字符串: { "companyID": "15", "employees&qu ...
- java字符串数组转json_java中字符串String格式转化成json格式
java字符串数组转json_java中字符串String格式转化成json格式 String s= Connection.deleteHost("10310");System.o ...
- 使用C#删除一个字符串数组中的空字符串
C#中要如何才能删除一个字符串数组中的空字符串呢?随着微软对C#不断发展和更新,C#中对于数组操作的方式也变得越来越多样化.以往要实现过滤数组中的空字符串,都是需要实行循环的方式来排除和过滤.C#3. ...
- c+字符串数组_了解C ++字符串数组
c+字符串数组 Hey, Folks! So, as programmers, we often deal with Arrays of all data types. We'll cover C++ ...
- java js对象转字符串数组_js 转json格式的字符串为对象或数组(前后台)的方法
一.前台 // 转换成对象 var myObject = JSON.parse(_data); alert("对象:"+myObject.msg); // 转换成数组 var my ...
- mysql json类型数组索引_MySQL JSON 类型数据操作
1.Java 中动态扩展字段,会导致数据库表被锁,在MySQL 5.7.8版本之前,因为MySQL不能直接操作JSON类型数据,可以将一个字段设定成varchar类型,里面存放JSON格式数据,这样在 ...
- c 字符串数组_C语言探索之旅 | 第二部分第四课:字符串
内容简介 前言 字符类型 显示字符 字符串其实就是字符的数组 字符串的创建和初始化 从 scanf 函数取得一个字符串 操纵字符串的一些常用函数 总结 第二部分第五课预告 1. 前言 上一课 C语言探 ...
- c语言字符串数组分配没错,【字符串数组面试题】面试问题:C语言基础小结… - 看准网...
26. 位段:指定结构体中成员变量所占的位数(以位的形式紧凑存储) unsigned char/int aaa:1 这里只能是unsigned char/int类型 27. 指针数组:int *p[1 ...
最新文章
- 2018几大主流的 UI/JS 前端框架
- Python(4):条件控制
- video.min.js php,在WordPress中使用videojs来播放七牛私有空间视频
- 一分钟学会python编程_用Python教你一分钟检验出来!不用群发_编程语言_Python课程_Python教程_课课家...
- WPF and Silverlight 学习笔记(十四):键盘输入、鼠标输入、焦点处理[转]
- 主定理(Master Theorem)与时间复杂度
- 开源老兵教你如何评估一项技术是否值得长期投入?
- scrum 12.8
- JAVA匿名实现多线程
- 基于暗通道先验的单幅图像去雾
- 采用Zigbee和Raspberry Pi的太阳能/燃气热水器自动控制系统
- 西门子estop指令_西门子PLC故障安全编程——ESTOP1指令
- PIC单片机入门教程(四)—— 第一个工程
- go语言实现2048小游戏(完整代码)
- 3分钟了解伺服驱动器的工作原理
- 人事考试网上报名系统
- https ssl单项认证和双向认证以及证书生成
- Java基础语法 (Random随机数)
- CSS实现步骤进度条——前端每日一练
- 云服务器流量是什么东西_在线科普,买一台云服务器到底能干嘛?
热门文章
- php如何统计数组的个数,如何用php统计数组元素的个数(附代码)
- linux图形界面为英文,Linux下“英文控制台 中文图形界面”的实现
- linux下删除已经创建的数据库,MongoDB 数据库的创建和删除
- Jsoup设置元素的文本内容
- html5教学案例撰写,怎样撰写教育教学案例
- mac python运行按哪个键_#mac python如何使用教程#怎么在mac终端运行python程序
- 组件php53 php55区别,分享下php5类中三种数据类型的区别
- java如何处理灰度图片_Java图片的灰度处理方法
- firefox flash插件_巧用firefox下载视频资源
- opencv Mat push_back