C# 基础,JOject JArray构造json对象

前两天要用到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访问会得到如下的结果:

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

后台代码:

        public JArray GetNestArray2()
        {
            //新建两个JObject对象
            JObject kevin = new JObject();
            kevin.Add("name", "kevin");
            kevin.Add("age", 18);

            JObject jack = new JObject();
            jack.Add("Name", "Jack");
            jack.Add("age", 20);

            //新建一JArray对象
            JArray objj = new JArray();
            objj.Add(kevin);
            objj.Add(jack);

            //新建最外层的JArray对象
            JArray reArray=new JArray();
            //用简便的方法添加了一个JArray数组.参考上面new JObject的方法
            reArray.Add(new JArray { new JObject { { "Name", "Lucy" }, { "age", 20 } }, new JObject { { "Name", "Lily" }, { "age", 20 } } });
            //添加第一个JArray对象
            reArray.Add(objj);

            return reArray;
        }

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

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

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

后台代码:

        public JArray GetNestArray()
        {
            JObject kevin = new JObject{ { "name", "kevin" },{"age", 18}};
            JObject jack = new JObject {{"Name", "Jack"}, {"age", 20}};

            JObject obj4 = new JObject();
            JArray childArray = new JArray {kevin, jack};
            obj4.Add("array", childArray);

            JArray objj = new JArray {kevin, jack, obj4};
            return objj;
        }

通过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访问会得到如下的结果:

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

完毕! ^_^

时间: 2024-11-10 13:30:34

C# 基础,JOject JArray构造json对象的相关文章

jQuery调用WCF服务传递JSON对象

下面这个示例使用了WCF去创建一个服务端口从而能够被ASP.Net页面通过jQuery的AJAX方法访问,我们将在客户端使用Ajax技术来 与WCF服务进行通信.这里我们仅使用jQuery去连接Web Service,而不去使用ASP.Net AJAX库,至于为什么不使用AJAX库中,那是因为我们在项目中已经使用了jQuery,而它已经能处理全部的AJAX请求和所有功能,并且,如果我们 一旦使用ASP.NET AJAX库,我们也必须多包含一个超过80Kb的数据量(调试模式下会更大),但这也不是说

js json对象操作

参数解析: sourcelist是json对象[{id:1,name:张三}] targetlist是json对象[{roomid:1}] 返回值list是json对象[{id:1,name:张三, testname: "testname" }] 构造list,最外层是数组,内层是单个json的json对象,用var listtemp = { testname: "testname" };来声明一个json对象,其中 testname: "testname

JSON对象长度和遍历方法

json数组有长度json.abc.length,如果单纯是json格式,那么不能直接使用json.length方式获取长度,而应该使用其他方法. 最近在修改一个html页面的JS的时候遍历JSON对象,却怎么也调试不通过.怪这个HTML网页不知道用了什么方法禁止了js错误提示,刚开始的时候不知道有这个问题,用chrome的开发人员工具都没发现错误,就是在获取 json.length的时候总是undefined,所以就以为自己定义的json方法不对.折腾了一个晚上一点进展都没有,头都整晕了,太晚

js JSON对象属性

json对象是是一种用于原生json分析的对象,无法对其进行构造函数调用,用java术语 来说,它相当于能够直接使用类方法的工具类JSON对象的属性parse(text[,reviver]);对参数text这一json字符串分析之后 返回一个javascript对象. reviver将会对每个属性调用回调函数,并将返回值赋为属性值对于reviver函数reviver(key,val){}对javascript返回的对象每一个属性调用函数,注意对对象本身也进行一次调用,没有key值,在最后一次,v

jquery 源码学习(四)构造jQuery对象-工具函数

jQuery源码分析-03构造jQuery对象-工具函数,需要的朋友可以参考下. 作者:nuysoft/高云 QQ:47214707 EMail:[email protected] 声明:本文为原创文章,如需转载,请注明来源并保留原文链接. 读读写写,不对的地方请告诉我,多多交流共同进步,本章的的PDF等本章写完了发布. jQuery源码分析系列的目录请查看 http://nuysoft.iteye.com/blog/1177451,想系统的好好写写,目前还是从我感兴趣的部分开始,如果大家有对哪

JSON字符串和JSON对象

今天来讲讲,之前虽然一直在提交数据,但是还是没有明白这个里面的区别,其实这个当javascript基础到达一定基础了,理解并不难 代码如下:var str = "{name:'David',age : '22'}"; 所以大家在控制台下看到了这个结果,typeof判断了str 是字符串; 然后看下js对象: var obj = {name:'David',age'22'}; 大家看得出就是这个区别 在用ajax 传输数据的时候 我们一般采用json字符串来传递,所以就牵涉到字符串与对象

JSON文件和Json对象

JSON 语法规则 JSON 语法是 JavaScript 对象表示语法的子集. 数据在键值对中 数据由逗号分隔 花括号保存对象 方括号保存数组 JSON 名称/值对 JSON 数据的书写格式是:名称/值对. 名称/值对组合中的名称写在前面(在双引号中),值对写在后面(同样在双引号中),中间用冒号隔开: 1 "firstName":"John" 这很容易理解,等价于这条 JavaScript 语句: 1 firstName="John" JSON

JSON对象长度和遍历方法(转)

最 近在修改一个HTML页面的JS的时候遍历JSON对象,却怎么也调试不通过.怪这个HTML网页不知道用了什么方法禁止了js错误提示,刚开始的时候不 知道有这个问题,用chrome的开发人员工具都没发现错误,就是在获取 json.length的时候总是undefined,所以就以为自己定义的json方法不对.折腾了一个晚上一点进展都没有,头都整晕了,太晚,最后失 望地洗洗睡了. 第 二天晚上就是不甘心这个小问题能难倒我,于是静下心来仔细查原因.自己新建一个空的HTML文件在其中测试,发现JSON

javascript : json对象的排序

json对象的排序 代码 test.js 第一版 1 //使用严格模式 2 "use stricts"; 3 //需要排序json对象格式 4 var moudles = {"share-map":{orderindex:2},"share-file":{orderindex:1}}; 5 6 var keys = Object.keys(moudles); 7 //最终的对象 8 var arr = []; 9 //构造对象 10 functi