抱歉这个代码格式有问题,请查看这个文章:https://www.cnblogs.com/dongguapifly/p/4630872.html

前两天要用到json对象,久了没有用JObject.用法都已经忘了.后来搞半天才一知半解.暂时把一直半解给记录下来,以免以后忘记,若能帮助到其他人那也不错

首先用到的两个类.JObject 和JArray 需要引入库:Newtonsoft.Json.dll

我所用到的demo 是一个基本的MVC项目.

情况一:返回一个基本的json对象:

后台代码:

        public JObject GetObj(){JObject obj =new JObject();obj.Add("Name","Ray");return obj;}

通过chrome访问会得到如下的结果:

情况二:生产环境肯定不会这么简单,肯定会有多个键值对,我就是卡到这里

    返回一个稍显复杂的json字符串:

后台代码:

        public JObject GetObj(){JObject obj =new JObject();obj.Add("Name","Ray");obj.Add("Gender","Male");return obj;}

通过chrome访问会得到如下的结果:

情况三:到这里仍然不能满足实际需求,也许我们需要子对象,比如增加一个联系方式,联系方式有电话和QQ

后台代码:

        public JObject GetObj(){JObject obj =new JObject();obj.Add("Name","Ray");obj.Add("Gender","Male");//增加一个联系方式JObject contact=new JObject();contact.Add("Phone","151XXXXXXXX");contact.Add("QQ","123456789"); obj.Add("Contact",contact);return obj;}

通过chrome访问会得到如下的结果:

实际上后来vs的强大的插件resharper 提示我Jobject 定义的时候可以用更简洁的方法:请参考这种定义方法,不要一个一个add了:

JObject tom = new JObject {{"Name", "Tom"}, {"Gender", "Male"}};

好了,到了这里JObject的使用是不是已经会了呢.但是实际情况中,json对象中还会包括一些数组.这个时候我们就要用到JArray了.

情况一:最基本的JArray

后台代码:

        public JArray GetJArray(){JArray array=new JArray();JObject tom = new JObject {{"Name", "Tom"}, {"Gender", "Male"}};JObject jack=new JObject{{"Name","Ray"},{"Gender","Female"}};array.Add(tom);array.Add(jack);return array;}

通过chrome访问会得到如下的结果:

情况二:实际情况下,这种语法是极少的,通常还是会出现嵌套情况,请看下面

后台代码:

 View Code

可以这样理解,一个[]必然对应着一个JArray对象.

通过chrome访问会得到如下的结果:

情况三:实际情况下JArray和JObject混用.请看下面的代码:

后台代码:

 View Code

通过chrome访问会得到如下的结果(实际上一个数组里面存储的应该是平级并且有相同格式的内容,该例子只作为演示用.生产环境考虑其他数据格式):

该方法返回的是JArray对象

情况四:返回的是一个Jobject对象,常见情况

    后台代码(业务逻辑是获取一个学生的信息,包括学生的两门课程分数):

        public JObject GetStudentInfo(){//新建一个JObject对象 增加两个键值对JObject studentInfo=new JObject{{"name","Kevin"},{"gender","Male"}};//新建一个JArray对象,可以理解成json对象中 value 位置的数组对象 ->  []JArray courses = new JArray { new JObject { { "courseName", "Math" }, { "score", 88 } }, new JObject { { "courseName", "English" }, { "age", 95 } } };studentInfo.Add("courses", courses);return studentInfo;}

通过chrome访问会得到如下的结果:

好了 到这里你已经可以应付一般情况的数据了.

完毕! ^_^

转载于:https://www.cnblogs.com/dongguapifly/p/10627145.html

C# 基础,JOject JArray构造json对象相关推荐

  1. mysql使用group_concat()连接构造json对象数组时长度受限

    记录record转换为json 1. 关键字: json_object() group_concat() group by 2. 分组聚合构造json数组 使用分组聚合生成JSON数组: SELECT ...

  2. jQuery调用WCF服务传递JSON对象

    下面这个示例使用了WCF去创建一个服务端口从而能够被ASP.Net页面通过jQuery的AJAX方法访问,我们将在客户端使用Ajax技术来 与WCF服务进行通信.这里我们仅使用jQuery去连接Web ...

  3. JSON基础入门实战讲解在线视频课程-JSON语法规则,json对象,json数组的定义和使用

    JSON 语法 微信小程序交流群:111733917 | 微信小程序从0基础到就业的课程:https://edu.csdn.net/topic/huangjuhua JSON 语法是 JavaScri ...

  4. C# 关于JArray和JObject封装JSON对象

    直入主题,不废话... 1.JObject:基本的json对象 /// <summary>/// Gets the j object./// </summary>/// < ...

  5. C#关于JArray和JObject封装JSON对象

    1.JObject:基本的json对象 /// <summary>/// Gets the j object./// </summary>/// <returns> ...

  6. JSONX-在Java中构造和解析复杂的JSON对象

    前言 博客首页:https://xiajiao.site 前往博客原文下载源码↓ 博文链接:伊地知虾饺的博客-JSONX-在Java中构造和解析复杂的JSON对象 JSONX--JSON-Xiajia ...

  7. JavaScript对象、JSON对象、JSON字符串的区别

    一.首先看下什么是JSON JSON:JavaScript Object Natation,JavaScript对象的表现形式,已经发展成一种轻量级的数据交换格式. JavaScript对象的表现形式 ...

  8. jquery 1.7.2源码解析(二)构造jquery对象

    构造jquery对象 jQuery对象是一个类数组对象. 一)构造函数jQuery() 构造函数的7种用法: 1.jQuery(selector [, context ]) 传入字符串参数:检查该字符 ...

  9. html js定义json对象,javascript中的json及对象

    ③ 使用JSON构造对象 JSON即Javascript对象表示方法(Javascript Object Notation),也就是通过字面量来表示一个对象: //JSON形式创建一个对象 var a ...

  10. json字符串转换成json对象,json对象转换成字符串,值转换成字符串,字符串转成值...

    json字符串转换成json对象,json对象转换成字符串,值转换成字符串,字符串转成值 原文:json字符串转换成json对象,json对象转换成字符串,值转换成字符串,字符串转成值 主要内容: 一 ...

最新文章

  1. vue结合php增删改查实例,从vue基础开始创建一个简单的增删改查的实例
  2. MAC下安装多版本JDK和切换几种方式
  3. poj 3678 Katu Puzzle(2-sat)
  4. R语言学习 - 非参数法生存分析
  5. 一步步学习SPD2010--第四章节--创建和修改网页(9)--附上母版页
  6. 长沙理工考研2021计算机软件科目,2021考研进行时:速览最新招生信息
  7. EXCEL vba 易失性函数
  8. python数据可视化常用工具推荐
  9. vue 图片写入文字,图片注入文字,图片添加文字
  10. 对服务器上出现大量的SYN_RCVD状态的TCP连接的问题分析
  11. echarts:基于上一篇我来给大家讲讲 如果你设置了自动播放但是鼠标放上去不生效 停留时间很短 应该怎么做呢???
  12. LeetCode 299猜数字游戏
  13. Linux多网卡多路由设置
  14. AtCoder Beginner Contest 242 C 1111gal password
  15. ProtoBuf 官方文档翻译
  16. 安兔兔android手机性能排行榜,安兔兔2018年12月Android手机性能排行榜
  17. o365不能登录的问题
  18. set_global_opts全局设置
  19. 日常杂记之解除B站区域限制(可看进击的巨人)
  20. 微软Dynamics CRM管理销售流程 客户一个都不会跑

热门文章

  1. 面经 | NLP算法岗(百度)
  2. 字节跳动和OPPO:机器翻译等智能时代算法技术如何落地?
  3. NLP学习—22.Transformer的代码实现
  4. 金融评分卡项目—3.流失预警模型中的数据预处理与特征衍生
  5. python—csv模块处理单字符分隔符文件
  6. 平衡二叉树建立、实现和判断
  7. 学习强化学习无法避开的两个词:Model-Based与Model-Free
  8. 无人驾驶的分级以及产品化后会带来的改善
  9. 深入Linux设备驱动程序内核机制
  10. 产品经理应该扮演的几种角色