关闭

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

标签: JSONJObjectJArray
5286人阅读 评论(2) 收藏 举报
分类:

抱歉这个代码格式有问题,请查看这个文章: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访问会得到如下的结果:


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

完毕! ^_^

0
0
查看评论

JSON中JObject和JArray,JValue序列化(Linq)

一、JObject和JArray序列化 1.实例化JArray和JObject,然后序列化 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data;...
  • lovegonghui
  • lovegonghui
  • 2015-12-14 13:34
  • 8276

JSON中JObject和JArray的修改

1.先添加一个json字符串,把json字符串加载到JObject中,然后转换成JObject.根据索引修改对象的属性值,移除属性,添加属性 using System; using System.Collections.Generic; using System.Linq; using System...
  • lovegonghui
  • lovegonghui
  • 2015-12-15 08:59
  • 7395

Some issues caused by memory parameter not well configed

本文记录了一些因为内存参数配置引起的一些issue. 在分析这些issue的时候, 因为不能肯定root cause是硬件引起且涉及分工, 所以有些语句表达的比较委婉, 仅从技术角度分析问题所在. 在得到内存参数配置反馈后, 增加了root cause分析部分内容. 可以做为分析native cra...
  • zirconsdu
  • zirconsdu
  • 2012-11-19 19:04
  • 4195

JSON中使用JArray.Parse

一.JArray.Parse(String)的使用 1.案例如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using GongH...
  • lovegonghui
  • lovegonghui
  • 2015-12-14 16:57
  • 1511

C#读取JSON

欲成为海洋大师,必知晓海中每一滴水的真名。 刚开始只是想找一个转换JSON数组的方法,结果在MSDN翻到一大把。 搜索过程中免不了碰到一大堆名词:WCF => DataContract => DataMember => DataContractJsonSerializer,然后...
  • GoodShot
  • GoodShot
  • 2012-09-04 12:53
  • 4821

遍历Newtonsoft.Json.Linq.JObject

JObject 遍历: 引用命名空间:using Newtonsoft.Json.Linq; StringBuilder str = new StringBuilder(); JObject _jObject = JObject.Parse("{'...
  • yo548720570
  • yo548720570
  • 2013-08-28 16:59
  • 21047

C# 解析JSON方法总结

用JsonConvert序列化和反序列化
  • jjhua
  • jjhua
  • 2016-05-17 18:20
  • 26158

JArray ,JObject 及反序列化实体类等问题

JSON反序列化JArray ,JObject 及反序列化实体类等问题/* JArray 数组*/ string jsonText = "[{'a':'aaa','b':'bbb','c':'ccc&#...
  • u013494045
  • u013494045
  • 2017-04-11 15:15
  • 1031

C# JArray与JObject 的使用

STEP1、using Newtonsoft.Json.Linq; STEP2 如何获取json里的某个属性(节点)值,对其删改,新增  //2.1 数组用JArray加载 string jsonText = "[{'a':'aaa...
  • u013938578
  • u013938578
  • 2017-12-20 09:39
  • 67

Newtonsoft.Json.Linq.JArray 转换成 List<T>

I have the following variable of type {Newtonsoft.Json.Linq.JArray}. 我有这么一组数组对象properties["Value"] {[ { "Name": "Usern...
  • z767327552
  • z767327552
  • 2017-08-31 09:42
  • 1880
    个人资料
    • 访问:196253次
    • 积分:2577
    • 等级:
    • 排名:第16820名
    • 原创:76篇
    • 转载:38篇
    • 译文:1篇
    • 评论:15条
    最新评论