恼火了,调试半天json串返序列化对象还是抛出异常,请帮忙解决

sufan8412 2015-08-18 08:06:41
json串:
{"retcode":0,"transinfo":[{"receivephone":"15889333441","transid":"390E9740-482F-4F5D-BA46-D31EE2509850"},{"receivephone":"13423393145","transid":"F98B700F-EFE3-42ED-A223-D0056A4A9850"}],"errorinfo":""}


返序列化为对象,以下是不写法有问题总是抛出异常 “在 Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value)...“

public class smsSend_Rec
{
private int _retcode;
public int retcode
{
get { return _retcode; }
set { _retcode = value; }
}

private int _errorinfo;

public int errorinfo
{
get { return _errorinfo; }
set { _errorinfo = value; }
}

public class phoneSend
{
private string _receivephone;
private string _transid;

public string receivephone
{
get { return _receivephone; }
set { _receivephone = value; }
}
public string transid {
get { return _transid; }
set { _transid = value; }
}
}


public List<phoneSend> transinfo{ get; set; }
}


smsSend_Rec SmsSend_Rec = JsonConvert.DeserializeObject<smsSend_Rec>(str);
...全文
196 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
全栈极简 2015-08-19
  • 打赏
  • 举报
回复

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string json = "{\"retcode\":0,\"transinfo\":[{\"receivephone\":\"15889333441\",\"transid\":\"390E9740-482F-4F5D-BA46-D31EE2509850\"},{\"receivephone\":\"13423393145\",\"transid\":\"F98B700F-EFE3-42ED-A223-D0056A4A9850\"}],\"errorinfo\":\"\"}";

Data data = JsonConvert.DeserializeObject<Data>(json);
foreach (transinfo transinfo in data.transinfo)
{
Console.WriteLine("{0},{1}", transinfo.receivephone, transinfo.transid);
}
}
}

public class Data
{
public int retcode { get; set; }
public transinfo[] transinfo { get; set; }
public string errorinfo { get; set; }
}

public class transinfo
{
public string receivephone { get; set; }
public string transid { get; set; }
}
}


sufan8412 2015-08-19
  • 打赏
  • 举报
回复
引用 1 楼 guwei4037 的回复:
换成我这个就可以了。
public class Data
{
   public int retcode{get;set;}
   public transinfo []transinfo{get;set;}
   public string errorinfo{get;set;}
}

public class transinfo
{
   public string receivephone{get;set;}
   public string transid{get;set;}
}
[/quote [quote=引用 1 楼 guwei4037 的回复:] 换成我这个就可以了。
public class Data
{
   public int retcode{get;set;}
   public transinfo []transinfo{get;set;}
   public string errorinfo{get;set;}
}

public class transinfo
{
   public string receivephone{get;set;}
   public string transid{get;set;}
}
还是不行呢
卷泥巴重来 2015-08-19
  • 打赏
  • 举报
回复
标准的json格式为:[{},{},{}].对比看一下你的格式对不对
newtee 2015-08-18
  • 打赏
  • 举报
回复
public List<phoneSend> transinfo{ get; set; } 要在构造函数里new下
全栈极简 2015-08-18
  • 打赏
  • 举报
回复
换成我这个就可以了。
public class Data
{
   public int retcode{get;set;}
   public transinfo []transinfo{get;set;}
   public string errorinfo{get;set;}
}

public class transinfo
{
   public string receivephone{get;set;}
   public string transid{get;set;}
}

62,074

社区成员

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

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

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

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