C# Newtonsoft.Json json数据解析求解

EP 2015-09-22 02:26:14
现在做一个网页抓取,发现网页有json数据,但是我不怎么会解析,求帮助!
json数据如下格式(数据太多,只挑选部分供大神参考):
{"fctionsDependantes":[{"fctionsDependantes":[{"fctionsDependantes":[],"grisee":false,"id":"xxx","imageFct":"Fct20100503165049615.jpg","libelleFct":"xxx","listeEffetClient":[],"niveauFct":3,"ordreAffichage":"1"},{"fctionsDependantes":[],"grisee":false,"id":"xxx","imageFct":"Fct20091028155419386.jpg","libelleFct":"xxx","listeEffetClient":[],"niveauFct":3,"ordreAffichage":"2"},{"fctionsDependantes":[],"grisee":false,"id":"xxx","imageFct":"Fct20091028112003836.jpg","libelleFct":"xxx","listeEffetClient":[],"niveauFct":3,"ordreAffichage":"3"}... ... "grisee":false,"id":"xxx","imageFct":"","libelleFct":"xxx","listeEffetClient":[],"niveauFct":1,"ordreAffichage":"4"}

我想请教如何解析这种 json 中包含自身数组的数据,如有代码提供者最好,如不熟悉这个库,会其他的解析库也可以,但是请务必提供这种转换的方式的代码,先谢谢!!
...全文
203 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
EP 2015-09-22
  • 打赏
  • 举报
回复
引用 12 楼 az6161311 的回复:
[quote=引用 9 楼 shenmafuyunnan 的回复:] [quote=引用 7 楼 az6161311 的回复:] 用JS 去转的话应该好理解一些。 类似:
用C#写的,C#应该用不了JS吧,而且我的Js也只是能看懂基本语法的程度,所以还不如C#方便[/quote] 你现在想用的不是需要json字符串转换为对象吗?JS 转对象时你好看懂一些,这样你在C#构建类型时方便很多。[/quote] 这个数据并不是一个很复杂的类型,并不需要花很大功夫,所以这里是不需要用JS,不过非常感谢您的关心和帮助,我已经结贴了。
天空丶蒋 2015-09-22
  • 打赏
  • 举报
回复
引用 9 楼 shenmafuyunnan 的回复:
[quote=引用 7 楼 az6161311 的回复:] 用JS 去转的话应该好理解一些。 类似:
用C#写的,C#应该用不了JS吧,而且我的Js也只是能看懂基本语法的程度,所以还不如C#方便[/quote] 你现在想用的不是需要json字符串转换为对象吗?JS 转对象时你好看懂一些,这样你在C#构建类型时方便很多。
EP 2015-09-22
  • 打赏
  • 举报
回复
引用 10 楼 wg5945 的回复:
选一个cs文件就能看到了~~
谢谢,确实可以,不过解析出来三个类,还是有些小问题,相比还是版主的方法更好。 最后结贴算分,感谢各位大神的版主,特别是版主,让鄙人简直受宠若惊
wg5945 2015-09-22
  • 打赏
  • 举报
回复
选一个cs文件就能看到了~~
EP 2015-09-22
  • 打赏
  • 举报
回复
引用 7 楼 az6161311 的回复:
用JS 去转的话应该好理解一些。 类似:
用C#写的,C#应该用不了JS吧,而且我的Js也只是能看懂基本语法的程度,所以还不如C#方便
EP 2015-09-22
  • 打赏
  • 举报
回复
引用 5 楼 starfd 的回复:
class fctionsDependantesDemo
{
    public List<fctionsDependantesDemo> fctionsDependantes { get; set; }
    public bool grisee { get; set; }
    public string id { get; set; }
    public string imageFct { get; set; }
    public string libelleFct { get; set; }
    public List<string> listeEffetClient { get; set; }
    public int niveauFct { get; set; }
    public string ordreAffichage { get; set; }
}
string txt = @"{""fctionsDependantes"":[{""fctionsDependantes"":[],""grisee"":false,""id"":""xxx"",""imageFct"":""Fct20100503165049615.jpg"",""libelleFct"":""xxx"",""listeEffetClient"":[],""niveauFct"":3,""ordreAffichage"":""1""},{""fctionsDependantes"":[],""grisee"":false,""id"":""xxx"",""imageFct"":""Fct20091028155419386.jpg"",""libelleFct"":""xxx"",""listeEffetClient"":[],""niveauFct"":3,""ordreAffichage"":""2""},{""fctionsDependantes"":[],""grisee"":false,""id"":""xxx"",""imageFct"":""Fct20091028112003836.jpg"",""libelleFct"":""xxx"",""listeEffetClient"":[],""niveauFct"":3,""ordreAffichage"":""3""}],""grisee"":false,""id"":""xxx"",""imageFct"":"""",""libelleFct"":""xxx"",""listeEffetClient"":[],""niveauFct"":1,""ordreAffichage"":""4""}";
var obj = JsonConvert.DeserializeObject<fctionsDependantesDemo>(txt);
Console.WriteLine(obj.ordreAffichage);
@starfd 还是版主大牛,几行代码就解决我十几行还没解决的问题 请容我稍等另一位的回复,回复完就结贴
天空丶蒋 2015-09-22
  • 打赏
  • 举报
回复
用JS 去转的话应该好理解一些。


类似:

EP 2015-09-22
  • 打赏
  • 举报
回复
引用 3 楼 wg5945 的回复:
http://json2csharp.com/
@wg5945 我试了,点击多次没反应
引用 4 楼 wg5945 的回复:
如果用2013,还有个“选择性粘贴”
@wg5945 这个我在我同事的vs2013上没看到,,不知道你是什么设置,是要建立C#工程还是其他工程等才能找到?
  • 打赏
  • 举报
回复
class fctionsDependantesDemo
{
    public List<fctionsDependantesDemo> fctionsDependantes { get; set; }
    public bool grisee { get; set; }
    public string id { get; set; }
    public string imageFct { get; set; }
    public string libelleFct { get; set; }
    public List<string> listeEffetClient { get; set; }
    public int niveauFct { get; set; }
    public string ordreAffichage { get; set; }
}
string txt = @"{""fctionsDependantes"":[{""fctionsDependantes"":[],""grisee"":false,""id"":""xxx"",""imageFct"":""Fct20100503165049615.jpg"",""libelleFct"":""xxx"",""listeEffetClient"":[],""niveauFct"":3,""ordreAffichage"":""1""},{""fctionsDependantes"":[],""grisee"":false,""id"":""xxx"",""imageFct"":""Fct20091028155419386.jpg"",""libelleFct"":""xxx"",""listeEffetClient"":[],""niveauFct"":3,""ordreAffichage"":""2""},{""fctionsDependantes"":[],""grisee"":false,""id"":""xxx"",""imageFct"":""Fct20091028112003836.jpg"",""libelleFct"":""xxx"",""listeEffetClient"":[],""niveauFct"":3,""ordreAffichage"":""3""}],""grisee"":false,""id"":""xxx"",""imageFct"":"""",""libelleFct"":""xxx"",""listeEffetClient"":[],""niveauFct"":1,""ordreAffichage"":""4""}";
var obj = JsonConvert.DeserializeObject<fctionsDependantesDemo>(txt);
Console.WriteLine(obj.ordreAffichage);
wg5945 2015-09-22
  • 打赏
  • 举报
回复
如果用2013,还有个“选择性粘贴”

wg5945 2015-09-22
  • 打赏
  • 举报
回复
EP 2015-09-22
  • 打赏
  • 举报
回复
引用 1 楼 starfd 的回复:
不就是类似下面这种实体么……
public class TreeNode
{
       public List<TreeNode> Nodes{get;set;}
}
@starfd 其实我也知道有些类似递归,但是我不会用,请问版主大人我应该怎么写呢??是在不会啊?我就是想它解析到一个类中
  • 打赏
  • 举报
回复
不就是类似下面这种实体么……
public class TreeNode
{
       public List<TreeNode> Nodes{get;set;}
}

62,072

社区成员

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

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

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

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