复杂的JSON字符串转换为对象的问题。

siaosa 2019-02-14 04:44:58

怎样将下列JSON字符串转换为一个对象呀? 特别是linkArray里的内容,是多列的,而且长度不一。


{
"class_": "Model",
"name": "aaaaa",
"linkArray": [
{
"from": 1,
"fromPort": "A",
"toPort": "T"
},
{
"from": 2,
"fromPort": "B",
"toPort": "T"
},
{
"from": 3,
"toPort": "T",
"to": 6
},
{
"from": 4,
"toPort": "T",
"desc": "obj"
},
{
"from": 4,
"fromPort": "A",
"toPort": "T",
"desc": "obj"
},
{
"from": 5,
"fromPort": "B",
"toPort": "T"
}
]
}
...全文
370 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
iAm_Ike 2019-02-14
  • 打赏
  • 举报
回复
首先将json对象转为json字符串,再使用Newtonsoft.Json




var jsonStr="{\"class_\": \"Model\",\"name\": \"aaaaa\",\"linkArray\": [{\"from\": 1,\"fromPort\": \"A\",\"toPort\": \"T\"},{\"from\": 2,\"fromPort\": \"B\",\"toPort\": \"T\"},{\"from\": 3,\"toPort\": \"T\",\"to\": 6},{\"from\": 4, \"toPort\": \"T\",\"desc\": \"obj\"},{\"from\": 4,\"fromPort\": \"A\",\"toPort\": \"T\",\"desc\": \"obj\"},{ \"from\": 5,\"fromPort\": \"B\",\"toPort\": \"T\"}]}";
JsonSerializerSettings setting = new JsonSerializerSettings();
setting.NullValueHandling = NullValueHandling.Ignore;
var model= JsonConvert.DeserializeObject<Demo>(jsonStr, setting);




下面是Demo类


public class Demo
{
public string class_ { get; set; }
public string name { get; set; }
public List<LinkArray> linkArray { get; set; }
}
public class LinkArray
{
public int from { get; set; }
public string fromPort { get; set; }
public string toPort { get; set; }
public string desc { get; set; }
public string to { get; set; }
}

Hello World, 2019-02-14
  • 打赏
  • 举报
回复
创建对应的类,包含所有字段,反系列化时自动生成默认值,系列化时增加选项,忽略空值
圣殿骑士18 2019-02-14
  • 打赏
  • 举报
回复
vs菜单 ,编辑=》选择性粘贴=》Json粘贴

public class Rootobject
{
public string class_ { get; set; }
public string name { get; set; }
public Linkarray[] linkArray { get; set; }
}

public class Linkarray
{
public int from { get; set; }
public string fromPort { get; set; }
public string toPort { get; set; }
public int to { get; set; }
public string desc { get; set; }
}

62,047

社区成员

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

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

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

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