C# JSON 常用方法 - Json字符串转对象
- 创建项目:ConsoleApplication_Json
- 选择项目右键管理NuGet程序包
- 搜索Newtonsoft.Json 并下载安装
- 选择项目添加 JsonHelper.cs
- 添加引用:
using Newtonsoft.Json;
- .编写Json处理方法代码,如下:
using System;
using Newtonsoft.Json;namespace ConsoleApplication_Json
{public class JsonHelper{public static decimal ToDecimal(object obj, decimal defaultValue = 0){string s = obj == null ? "" : obj.ToString();decimal result;if (!decimal.TryParse(s, out result)){result = defaultValue;}return result;}public static string Obj2Json(object value){return JsonConvert.SerializeObject(value);}/// <summary>/// 将JSON 字符串转换成对应的类型/// </summary>/// <typeparam name="T">转换后的类型</typeparam>/// <param name="s">需转换的字符串</param>/// <returns></returns>public static T Json2Obj<T>(string s){try{return JsonConvert.DeserializeObject<T>(s);}catch (Exception ex){return default(T);}}}
}
- .自定义Json格式模拟数据
{"id": "ko09895dd6g565d5222242125","status": true,"httpstatus": 200,"data": [{"room": {"field1": "955gg2015","field2": "G1020","field3": "VIP","field4": "大包","field5": "李春凤","field6": "10086611"},"address": "这里是个地址信息","sign": "预订"}, {"room": {"field1": "955gg2016","field2": "G1022","field3": "VIP_null","field4": "中等包","field5": "李春凤","field6": "10086622"},"address": "这里是个地址信洗第二个","sign": "预订"}],"nextLink": "www.baidu.com"
}
- .格式化Json字符串用于测试
{\"id\": \"ko09895dd6g565d5222242125\", \"status\": true, \"httpstatus\": 200, \"data\": [{ \"room\": { \"field1\": \"955gg2015\", \"field2\": \"G1020\", \"field3\": \"VIP\", \"field4\": \"大包\", \"field5\": \"李春凤\", \"field6\": \"10086611\" }, \"address\": \"这里是个地址信息\", \"sign\": \"预订\" }, { \"room\": { \"field1\": \"955gg2016\", \"field2\": \"G1022\", \"field3\": \"VIP_null\", \"field4\": \"中等包\", \"field5\": \"李春凤\", \"field6\": \"10086622\" }, \"address\": \"这里是个地址信洗第二个\", \"sign\": \"预订\" }], \"nextLink\": \"www.baidu.com\" }
- .新建刚才与Json格式对应的类:RoomResponse.cs,代码如下
using System.Collections.Generic;namespace ConsoleApplication_Json
{public class RoomResponse{public string id { get; set; }public string status { get; set; }public string httpstatus { get; set; }public List<Data> data { get; set; }public string nextLink { get; set; }} public class Data{public Room room { get; set; }public string address { get; set; }public string sign { get; set; }}public class Room{public string field1 { get; set; }public string field2 { get; set; }public string field3 { get; set; }public string field4 { get; set; }public string field5 { get; set; }public string field6 { get; set; }} }
- .进入Program.cs 文件,编辑代码如下:
namespace ConsoleApplication_Json
{class Program{static void Main(string[] args){var strJson = "{\"id\":\"ko09895dd6g565d5222242125\",\"status\":true,\"httpstatus\":200,\"data\":[{\"room\":{\"field1\":\"955gg2015\",\"field2\":\"G1020\",\"field3\":\"VIP\",\"field4\":\"大包\",\"field5\":\"李春凤\",\"field6\":\"10086611\"},\"address\":\"这里是个地址信息\",\"sign\":\"预订\"},{\"room\":{\"field1\":\"955gg2016\",\"field2\":\"G1022\",\"field3\":\"VIP_null\",\"field4\":\"中等包\",\"field5\":\"李春凤\",\"field6\":\"10086622\"},\"address\":\"这里是个地址信洗第二个\",\"sign\":\"预订\"}],\"nextLink\":\"www.baidu.com\"}";var test1 = JsonHelper.Json2Obj<RoomResponse>(strJson);}}
}
- .加断点,调试文件。
- .数据成功转换成类型对象。
- 补充:
/// <summary>/// 使用JObjectParse/// 获取Json字符串中的某个值/// </summary>/// <param name="s"></param>/// <returns></returns>public static JObject JObjectParse(string s){try{var obj = JObject.Parse(s);return obj;}catch (Exception){return null; }}/// <summary>/// 使用JavaScriptSerializer/// 获取Json字符串中的某个值/// </summary>/// <param name="s"></param>/// <returns></returns>public static Dictionary<string, object> JavaScriptSerializer(string s){try{JavaScriptSerializer Jss = new JavaScriptSerializer();Dictionary<string, object> DicText = (Dictionary<string, object>)Jss.DeserializeObject(s);return DicText;}catch (Exception ex){throw;}}
- 该方法用于获取每个节点对应的内容,可直接通过obj[“data”]取出数据。
- 先这样吧。
C# JSON 常用方法 - Json字符串转对象相关推荐
- java js对象转字符串数组_js 转json格式的字符串为对象或数组(前后台)的方法
一.前台 // 转换成对象 var myObject = JSON.parse(_data); alert("对象:"+myObject.msg); // 转换成数组 var my ...
- json格式的字符串转为json对象遇到特殊字符问题解决
中午做后台发过来的json的时候转为对象,可是有几条数据一直出不来,检查发现json里包含了换行符,造成这种情况的原因可能是编辑部门在编辑的时候打的回车造成的 假设有这样一段json格式的字符串 1 ...
- 字符串、对象、数组操作方法、json方法
1.字符串操作方法 1.charAt * 作用 * 通过索引找字符 * 语法 * 字符串.charAt(index) * 参数 * ...
- json数据解析与JAVA对象转换以及在JQUERY中的使用
JSON基础了解 JSON:JavaScript 对象表示法(JavaScript Object Notation). JSON 是存储和交换文本信息的语法.类似 XML. JSON 比 XML 更小 ...
- 【JSON教科书】什么是JSON,JSON字符串有什么作用?(JSON学习总结)
文章目录 @[toc] 一.了解Json 3.1 什么是Json 二.简单Json语法 2.1 语法 3.2.1 Json语法记忆规则 三.Json字符串的手写转换 JavaBean类对象 Json简 ...
- 对象转换成字符串/字符串和对象的相互转换
对象转字符串 JSON.stringify(obj) 字符串转对象或数组 JSON.parse(str)
- js 改写对象转字符串 字符串转对象(不丢失对象方法)
js 改写对象(包括方法)转字符串 对象转字符串 字符串转对象 总结 js中将对象转化为字符串可以用JSON.stringify,字符串转对象可以用JSON.parse.这两个方法在大部分的情况下都很 ...
- vue uniapp 字符串转对象,对象转字符串
//售前服务 shouqianfuwu(){ this.$api.getArchives({ page: ...
- js数组转字符串方法 对象转字符串 字符串转对象
js 数组转字符串的方法 window.fenlei.toString() 对象转字符串 let obj = {name: 'zs',age: 18} JSON.stringify(obj) 字符串转 ...
最新文章
- oracle求sql的cpu贡献率,oracle 实时查询最耗CPU资源的SQL语句
- spring boot 打包jar,jar没有主目录清单
- Lua1.0 代码分析 库
- simulink中选择开关模块的使用
- 看微软 Windows 30年发展简史,你用过最早的系统版本是什么?
- public static float CompareExchange(ref float location1,float value,float comparand)
- 请求页式存储管理中页面置换算法的模拟设计_操作系统-存储管理与文件管理-笔记...
- [机器学习]超参数优化算法-SuccessiveHalving与Hyperband
- 李嘉诚拥有8500亿资产, 是真正的世界首富,为何要藏富?
- [css] word-wrap、word-break和white-space有什么区别?
- oracle 取消exp权限,oracle 复制账号权限oracle11gexp导出问题:部分表导不出来
- 计算机知识*.jpg,计算机第一篇考试题(基础知识部分)
- 数控直流电压源的设计与制作【keil5 AD20]
- 电子知识|电源管理芯片
- 单元测试总结反思_考试后的总结与反思600字
- [MATLAB]最邻近插值法进行图像放大
- 李春葆、严蔚敏关于KMP算法的next数组值差1
- 推荐18个非常棒的Web和移动开发框架
- 接下来或许是一年中跳槽的最佳时间
- 前端想自学后找个小公司混口饭吃,需要学到什么程度?
热门文章
- web前端开发工程师是做什么工作的?
- 3ds max 软件主菜单中添加新的菜单
- Unity-点击屏幕进行移动
- sb3500_您的代码如何在3500万人的家庭中成为社会公益的代言人
- 关于解决 Failed to prepare partial IU:
- linux 查看开放的端口以及开放端口并且永久开放端口的方法
- 利用Office,将多个doc文档合并为一个文件,文档合并
- 【AI系列文章推送一】什么是人工智能?
- Orbit Downloader 小巧无广告的下载工具,超赞的在线视频下载能力,比迅雷清爽多了!
- java interrupt详解_Java线程源码解析之interrupt