JSON是现今各语言实现数据交互应用最广泛的一种格式,在于Xml的比较中,由于 JSON 所使用的字符要比 XML 少得多,可以大大得节约传输数据所占用得带宽。

本文采用的是Newtonsoft.Json插件类库提供的JsonConvert操作类实现

下面附上Json操作类的源码

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text; using Newtonsoft.Json;
using Newtonsoft.Json.Linq; namespace SP.Studio.Json
{
/// <summary>
/// Json操作类
/// Author:Jacky
/// </summary>
public static class JsonAgent
{
/// <summary>
/// 把json格式的单一对象转换成为哈希表
/// </summary>
public static Hashtable GetJObject(string json)
{
Hashtable ht = new Hashtable();
try
{
JObject obj = (JObject)JsonConvert.DeserializeObject(json);
foreach (KeyValuePair<string, JToken> keyValue in obj)
{
ht.Add(keyValue.Key, keyValue.Value);
}
}
catch (Exception ex)
{
ht.Add("Exception", ex.Message);
} return ht;
} /// <summary>
/// 把一个json数组对象转化成为hashlist
/// </summary>
public static Hashtable[] GetJList(string json)
{
Hashtable[] list;
try
{
JArray obj = (JArray)JsonConvert.DeserializeObject(json);
list = new Hashtable[obj.Count];
for (int i = 0; i < list.Length; i++)
{
list[i] = new Hashtable();
foreach (KeyValuePair<string, JToken> keyValue in (JObject)obj[i])
{
list[i].Add(keyValue.Key, keyValue.Value);
}
} }
catch (Exception ex)
{
list = null;
}
return list;
} /// <summary>
/// 将Json字符串转化为实体对象
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="json"></param>
/// <returns></returns>
public static T DeserializeObject<T>(string json)
{
return JsonConvert.DeserializeObject<T>(json);
}
}
}

调用方式跟上一篇操作Xml的差不多

PS:扫描下方二维码或点击链接,加入QQ群

最新文章

  1. Spring学习记录(四)---bean之间的关系:继承、依赖
  2. openstack-swift云存储部署(一)
  3. 学jQuery Mobile后的感想
  4. Eclipse的SVN插件提示:验证验证位置时发生错误:&quot;Unable to load default SVN Client“解决
  5. 单源最短路径——Floyd算法
  6. Android定时器,推荐ScheduledThreadPoolExecutor
  7. Jquery ajax请求导出Excel表格
  8. 让浏览器进行跨域访问, 开发阶段需要跨域访问的测试方案 chrome的快捷方式里面 加 &quot;C:\Program Files (x86)\Google\Chrome\Application\chrome.exe&quot; --args --disable-web-security
  9. vijos1004 博弈论
  10. wpf中数据绑定(Datacontext)的应用
  11. java精度计算代码,指定精确小数位
  12. js之Math对象
  13. XCode 8.3 Automatically manage signing 问题
  14. js判断密码强度是否符合
  15. MS SQL Server Management Studio中提示不允许保长度出现不允许保存更改。您所做的更改要求删除并重新创建以下表
  16. absolute元素 text-align属性
  17. Linux 帳號管理與 ACL 權限設定
  18. AI - TensorFlow - 第一个神经网络(First Neural Network)
  19. Android Studio导包无效,全部报红
  20. 20155324 《Java程序设计》实验三 敏捷开发与XP实践

热门文章

  1. Maven中dependencyManagement使用
  2. 跟我学算法聚类(DBSCAN)
  3. Spring -- &lt;context:component-scan&gt;使用说明
  4. spring maven项目解决依赖jar包版本冲突方案
  5. 125. Valid Palindrome (Array; Two-Pointers)
  6. UGUI防止穿透和判断点击的是否是UI
  7. 多个div嵌套,获取鼠标所点击的div对象
  8. Library not found for -lAPOpenSdk
  9. BBS项目之后台管理
  10. MYSQL隐式类型转换