关于json格式转成list,怎么写?最好给出代码,谢谢

seesea125 2008-12-09 11:27:10
using System;
using System.Collections;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Net;
using System.Text;
using System.IO;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
protected void Page_Load(object sender, EventArgs e)
{
//json格式的数值
string returnstr = @"{
""first1""
{
""identity"":1047744,""siteId"":10
},
""second1""
{
""identity"":1047745,""siteId"":11
}
}";
//一条一条读出来,添加到list中去
List<dealertest> thislist = new List<dealertest>();
StringReader sr = new StringReader(returnstr);
using (JsonReader jsonReader = new JsonReader(sr))
{
//这个地方怎么写?
while (jsonReader.Read())
{
dealertest thisdealer=new dealertest(.....);
..........这个地方怎么写?
thislist .add(thisdealer)
}
}
sr.Close();
}
public class dealertest
{
private long _identity;
private int _siteId;
public long identity
{
get{return _identity;}
}
public int siteId
{
get {return _siteId;}
}
}
...全文
1500 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
愿心平静面对 2011-03-18
  • 打赏
  • 举报
回复
.NET 2.0不支持json格式,真哎。。。
cmdcmd 2010-07-25
  • 打赏
  • 举报
回复
http://code.google.com/p/litjsonmd/
wjh10062010 2010-07-07
  • 打赏
  • 举报
回复
学习了。
zhongshanshan 2010-01-27
  • 打赏
  • 举报
回复
学习了,谢谢lonely7345提供的答案。很好。很受用。
生财 2008-12-29
  • 打赏
  • 举报
回复
好.贴.要顶

lonely7345 说的就是这样的
public class dealertest 
{
public long identity
{
get;
set;
}
public int siteId
{
get ;
set;
}
}

//序列化
List<dealertest> list = new List<dealertest>();
dealertest d = new dealertest();
d.identity=323;
d.siteId = 32;
list.Add(d);
Console.Write(JavaScriptConvert.SerializeObject(list));

//反序列化
string returnstr = @"[{""identity"":1047744,""siteId"":10 },{""identity"":1047745,""siteId"":11}]";
List<dealertest> thislist = new List<dealertest>();
thislist =JavaScriptConvert.DeserializeObject<List<dealertest>>(returnstr);
Console.Write(thislist.Count);

xierfly 2008-12-29
  • 打赏
  • 举报
回复
好东西,要顶顶顶,受教了
mengxj85 2008-12-29
  • 打赏
  • 举报
回复
学习
ldw701 2008-12-11
  • 打赏
  • 举报
回复
mark
孤独侠客123 2008-12-11
  • 打赏
  • 举报
回复
我的代码你也运行不通过吗?
ReyZhang 2008-12-09
  • 打赏
  • 举报
回复
up
孤独侠客123 2008-12-09
  • 打赏
  • 举报
回复

o = Newtonsoft.Json.JavaScriptConvert.DeserializeObject(returnstr);
Newtonsoft.Json.JavaScriptArray dls= o as Newtonsoft.Json.JavaScriptArray;
for (int i = 0; i < dls.Count; i++)
{
thislist.Add(new dealertest(dls[i]));
//这里你可以有一个转换方式,就是json实体和你的实体的转换.
//或者是你看一下,直接把o转换成你的List类型可以不可以
}
cncxz 2008-12-09
  • 打赏
  • 举报
回复
没具体做过 看看这些 json的api对你有帮助不

http://litjson.sourceforge.net/

http://james.newtonking.com/projects/json-net.aspx

http://code.google.com/p/jsonsharp/

http://sourceforge.net/projects/csjson
孤独侠客123 2008-12-09
  • 打赏
  • 举报
回复
不要把它带的例子误导,看看下面我专门给你写的吧.测试通过:


public class dealertest
{
public long identity
{
get;
set;
}
public int siteId
{
get ;
set;
}
}

//序列化
List<dealertest> list = new List<dealertest>();
dealertest d = new dealertest();
d.identity=323;
d.siteId = 32;
list.Add(d);
Console.Write(JavaScriptConvert.SerializeObject(list));

//反序列化
string returnstr = @"[{""identity"":1047744,""siteId"":10 },{""identity"":1047745,""siteId"":11}]";
List<dealertest> thislist = new List<dealertest>();
thislist =JavaScriptConvert.DeserializeObject<List<dealertest>>(returnstr);
Console.Write(thislist.Count);
MicroDeviser 2008-12-09
  • 打赏
  • 举报
回复
seesea125 2008-12-09
  • 打赏
  • 举报
回复
to:lonely7345 孤独侠客
List<dealertest> thislist = new List<dealertest>();
object o=Newtonsoft.Json.JavaScriptConvert.DeserializeObject(returnstr);
Newtonsoft.Json.JavaScriptArray dls = o as JavaScriptArray;

这个时候dls已经是null了,为什么转不成呢?

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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