超难 json转C#对象. 分全给了~!!!

amingo 2011-12-06 12:00:00
s = "{term:'111204'}"怎么将这个转成C#对象???别认为很简单,可以很容易的将s = "{\"term\":\"111204\"}"转成对象,但前者转不知道怎么转。 但他又确实是JSON对象,我无法修改前面那种写发,也不能用字符串替换,因为这只是整个JSON中的一部分,下面是代码:
using System;
using System.IO;
using System.Runtime.Serialization.Json;
using System.Text;

public sealed class JSONHelper
{
private static JSONHelper inst = new JSONHelper();

private JSONHelper()
{
}

public static JSONHelper Inst
{
get
{
lock (inst)
{
return inst;
}
}
}

public T Deserialize<T>(string json)
{
T obj = Activator.CreateInstance<T>();
MemoryStream ms = new MemoryStream(Encoding.Unicode.GetBytes(json));
DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());
obj = (T) serializer.ReadObject(ms);
ms.Close();
ms.Dispose();
return obj;
}

}


[DataContract]
public class Teams
{
//public HistoryTerms HistoryTerms { get; set; }
[DataMember(Name = "term")]
public string term { get; set; }

public Teams()
{

}
}


Teams teams = JSONHelper.Inst.Deserialize<Teams>(s);

...全文
140 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
阿非 2011-12-06
  • 打赏
  • 举报
回复
是么,那看来Json.NET 很犀利啊
机器人 2011-12-06
  • 打赏
  • 举报
回复
虽然没有严格遵守 262 规范,但 Json.NET 确实可以处理:

var json = "{term:'111204'}";
var obj = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, string>>(json);

阿非 2011-12-06
  • 打赏
  • 举报
回复
谁说"{term:'111204'}" 这个是json
机器人 2011-12-06
  • 打赏
  • 举报
回复
换个 Json.Net http://json.codeplex.com/ 就可以了。.NET自带的那个太死板了。
征服者X 2011-12-06
  • 打赏
  • 举报
回复
没转过,帮顶!
amingo 2011-12-06
  • 打赏
  • 举报
回复
Json.NET 是内置的吗
机器人 2011-12-06
  • 打赏
  • 举报
回复
[KnownType(typeof(MacthItems))]
public class SomeObj
{
public string term { get; set; }
public List<MacthItems> matchList { get; set; }

}
[KnownType(typeof(Macth))]
public class MacthItems
{
public List<Macth> list { get; set; }
}

public class Macth
{
public int matchNameIndex { get; set; }
}
Dogfish 2011-12-06
  • 打赏
  • 举报
回复
进来就看到各位已经回答了。

Json.Net是不错的。
amingo 2011-12-06
  • 打赏
  • 举报
回复
大哥 怎么把{term:'111204',
matchList:[{list:[{"matchNameIndex":1}]}]} 这个定义成.NET的类 十万火急
级多的C#辅助类大 网上有各式各样的帮助类,公共类,但是比较零碎,经常有人再群里或者各种社交账号上问有没有这个helper,那个helper,于是萌生了收集部helper的念头,以便日后使用。各式各样的几乎都能找到,所有功能性代码都是独立的类,类与类之间没有联系,可以单独引用至项目。 1. C#读取AD域里用户名或组 2. Chart图形 3. cmd 4. Cookie&Session 5. CSV文件换 6. DataTable实体 7. DBHelper 8. DecimalUtility及中文大写数字 9. DLL 10. Excel操作类 11. FTP操作类 12. H5-微信 13. Html操作类 14. INI文件读写类 15. IP辅助类 16. Javascript 17. Json 18. JSON操作 19. JS操作 20. Lib 21. Mime 22. Net 23. NPOI 24. obj 25. packages 26. Path 27. PDF 28. Properties 29. QueryString 地址栏参数 30. RDLC直接打印帮助类 31. ResourceManager 32. RMB 33. SqlHelper 34. SQL语句拦截器 35. URL的操作类 36. VerifyCode 37. XML操作类 38. 上传下载 39. 二维码操作类 40. 共用工具类 41. 其他 42. 分词辅助类 43. 分页 44. 加密解密 45. 压缩解压缩 46. 各种验证帮助类 47. 图片 48. 图片操作类 49. 图片验证码 50. 处理多媒体的公共类 51. 处理枚举类 52. 字符串 53. 对象换处理 54. 帮助文档 55. 序列化 56. 异步线程 57. 弹出消息类 58. 数据展示控件绑定数据类 59. 文件操作类 60. 日历 61. 日志 62. 时间戳 63. 时间操作类 64. 条形码 65. 条形码帮助类 66. 条形码HTML 67. 检测是否有Sql危险字符 68. 正则表达式 69. 汉字拼音 70. 注册表操作类 71. 科学计数,数学 72. 类型换 73. 系统操作相关的公共类 74. 缓存 75. 网站安 76. 网站路径操作类 77. 网络 78. 视频帮助类 79. 视频换类 80. 计划任务 81. 邮件 82. 邮件2 83. 配置文件操作类 84. 阿里云 85. 随机数类 86. 页面辅助类 87. 验证码

110,546

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧