超难 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);

...全文
146 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用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的类 十万火急

111,094

社区成员

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

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

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