超难 json转C#对象. 分全给了~!!!
时间:2011-12-06
来源:互联网
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);
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);
作者: amingo 发布时间: 2011-12-06
没转过,帮顶!
作者: li_ser 发布时间: 2011-12-06
换个 Json.Net http://json.codeplex.com/ 就可以了。.NET自带的那个太死板了。
作者: fangxinggood 发布时间: 2011-12-06
谁说"{term:'111204'}" 这个是json
作者: Sandy945 发布时间: 2011-12-06
虽然没有严格遵守 262 规范,但 Json.NET 确实可以处理:
C# code
C# code
var json = "{term:'111204'}"; var obj = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, string>>(json);
作者: fangxinggood 发布时间: 2011-12-06
是么,那看来Json.NET 很犀利啊
作者: Sandy945 发布时间: 2011-12-06
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28