1. JObect与JsonData的区别

JsonData是JObect的简化版本

2.转换过程容易出的bug

JsonData:当里面存在null就无法转换

解决方案: JsonData teamjd = JsonMapper.ToObject(FindDoctor("0",orgID).Replace(":null", ":\"\""));     //将JsonData中的null替换为“”

JObect :转化为JObect失败

解决方案:失败原因是转化对象是数组要转换为JArray        JArray jArray=JArray.Parse(str);

JObect :jArray[0]不能直接转换为JObect

解决方案:JObject jObject = jArray[0] as JObject;

JObect:当JObect对象内部存在数组无法通过Count取值

解决方案:

foreach (JToken field in jObject["data"]["doctors"])
                      {

if ((field["name"].ToString()).Equals(docName.Trim()))
                       {
                           doctorid = field["id"].ToString();
                          break;
                      }
                   }

3.判断json值为空

JObect:  jb.ToString().Equals("")               若不为空就会返回jsonObect

JsonData : jd.Count==0

4.json对象的转换

JsonData :当内部存在数组

json["userFamilyHistory"] = new JsonData();

json["userFamilyHistory"].SetJsonType(JsonType.Array);
                               json["userFamilyHistory"].Add(userFamilyHistory);

JObect:当内部存在数组

List<JObject> listHistory = new List<JObject>();

Object other = new JObject();

                                  ...............

                              listHistory.Add(other);

jObject.Add(new JProperty("history", listHistory));

注意:JsonConvert.SerializeObject()   可以将类,datatable直接转化为json字符串

5.对json应用的小技巧

//根据json创建表

private void createTable(JArray jArray,string tabName)
{
JObject jObject = jArray[0] as JObject;
//配置签约表
DataTable signTb = new DataTable(tabName);
foreach(var item in jObject)
signTb.Columns.Add(item.Key); foreach (JObject obj in jArray)
{
DataRow newrow = signTb.NewRow();
foreach (var item in obj)
{
newrow[ item.Key ] = item.Value;
}
signTb.Rows.Add(newrow);
}
CommonRse.ds[tabName] = signTb.Copy();
}

  

json的使用(JObect,JsonData,JArray)的更多相关文章

  1. JObject 用法 、JProperty 用法、JArray 用法 Linq 转 Json

    1.使用LINQ to JSON前,需要引用Newtonsoft.Json的dll和using Newtonsoft.Json.Linq的命名空间.LINQ to JSON主要使用到JObject, ...

  2. JSON转化为JAVABEAN集合

    String str = "[{'id':'392','type':'jpg'},{'id':'393','type':'jpg'},{'id':'377','type':'jpg'}]&q ...

  3. ASP.NET提取多层嵌套json数据的方法

    本文实例讲述了ASP.NET利用第三方类库Newtonsoft.Json提取多层嵌套json数据的方法,具体例子如下. 假设需要提取的json字符串如下: {"name":&quo ...

  4. .net(c#)提取多层嵌套的JSON

    Newtonsoft.Json.Net20.dll 下载请访问http://files.cnblogs.com/hualei/Newtonsoft.Json.Net20.rar 在.net 2.0中提 ...

  5. c#多层嵌套Json

    Newtonsoft.Json.Net20.dll 下载请访问http://files.cnblogs.com/hualei/Newtonsoft.Json.Net20.rar 在.net 2.0中提 ...

  6. C#解析json的两种方式

    C#中Json转换主要使用的几种方法! 这篇主要介绍2.4.第三种方法使用的比较局限,所以我没有深入学习. 第二种方法 我使用比较多的方式,这个方法是.NET内置的,使用起来比较方便 A.利用seri ...

  7. 提取多层嵌套Json数据

    在.net 2.0中提取这样的json {"name":"lily","age":23,"addr":{"ci ...

  8. 详解ASP.NET提取多层嵌套json数据的方法

    本篇文章主要介绍了ASP.NET提取多层嵌套json数据的方法,利用第三方类库Newtonsoft.Json提取多层嵌套json数据的方法,有兴趣的可以了解一下. 本文实例讲述了ASP.NET利用第三 ...

  9. js Form表单转json格式,及后台接收(多种方法)

    转载:https://blog.csdn.net/qq_40138785/article/details/81533015 一.serialize()方法格式:var data = $("# ...

随机推荐

  1. php中mvc框架总结1(7)

    1.代码结构的划分: 目前的目录结构: /站点根目录 /application/应用程序目录 Model/模型目录 View/视图目录 Back/后台 front/ test/测试平台 Control ...

  2. zTree第三章,异步加载,前端

    zTree异步加载 ---------------------------------------------------------------------------------- 具体详见API ...

  3. 教你玩转XSS漏洞

    什么是存储性XSS那? 通俗理解就是”xss“语句存在服务器上,可以一直被客户端浏览使用,所有登陆某一个存在”存储性xss“的页面的人,都会中招,可以是管理员,可以是普通的用户,所以他的危害是持续性的 ...

  4. Linux下的压缩及归档

    Linux下常用的压缩格式有: gz,bz2,xz,zip,Z //只能压缩文件不能压缩目录,如果传递一个目录,他会把目录中的文件逐个压缩 ..压缩算法:算法不同,压缩比也不同 gz:gzip,压缩后 ...

  5. 基于Dubbo的Hessian协议实现远程调用

    Dubbo基于Hessian实现了自己Hessian协议,可以直接通过配置的Dubbo内置的其他协议,在服务消费方进行远程调用,也就是说,服务调用方需要使用Java语言来基于Dubbo调用提供方服务, ...

  6. JAVA数组的定义方式

    JAVA中,数组有以下几种定义方式: 1.先定义数组中元素的个数,然后再进行元素赋值 int[] a=new int[2]; a[0]='a'; a[1]='b';a[2]='c'; 2.元素个数与元 ...

  7. [Objective-C语言教程]基础框架(34)

    如果您参考Apple文档,应该会看到Foundation框架的详细信息,如下所示. Foundation框架定义了Objective-C类的基础层. 除了提供一组有用的原始对象类之外,它还引入了几个定 ...

  8. RN 中 Native 模块的注入过程

    找到所有的模块 一般来说,只要在模块中声明 RCT_EXPORT_MODULE 即可.这是个宏,展开后是声明了一个函数,定义了两个函数,如下所示. #define RCT_EXPORT_MODULE( ...

  9. 基于python复制蓝鲸作业平台

    前言 去年看武sir代码发布的视频无意中听到了蓝鲸平台但是一直没深究,前一段时间公司要搞一个代码发布平台,但是需求变化很多一直找不到一个很好的参考 模板,直到试用了一下蓝鲸作业平台发现“一切皆作业”的 ...

  10. 2019年北航OO第二次博客总结

    一.多线程电梯系列作业设计策略 1. 第一次作业——"FAFS傻瓜电梯" 第一次作业是先来先服务的"傻瓜电梯",我当时觉得这个设计未免太简单了,于是就在傻瓜电梯 ...