c# 操作json,如何处理???????????????

MXCZ945 2013-11-11 10:40:46
比如我有如下Json:

{
"children":
[ {
"date_added": "13021725292433000",
"id": "121",
"name": "asp.net - How to implement a custom panel with INamingContainer? - Stack Overflow",
"type": "url",
"url": "http://stackoverflow.com/questions/3671712/how-to-implement-a-custom-panel-with-inamingcontainer"
},
{
"date_added": "13021968277554750",
"id": "122",
"name": "Control firefox bookmarks by sqlite",
"type": "url",
"url": "http://www.cnblogs.com"
} ],
"date_added": "13022224650424250",
"date_modified": "13027602398784788",
"id": "6",
"name": "asp.net\u63A7\u4EF6\u6280\u672F",
"type": "folder"
}

我想在children中添加一个新的节点,该如何使用c#处理?另外我是Winform程序。
...全文
309 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
兰峰如月 2013-11-12
  • 打赏
  • 举报
回复
引用 9 楼 u012536474 的回复:
[quote=引用 8 楼 u012238529 的回复:] 我都是用的json.net做的!
好人,json.net是什么,是Newtonsoft.json.dll吗?[/quote]就是的!用这个做很方便!包你满意!我现在也在做关于json的!
Phoozyan 2013-11-11
  • 打赏
  • 举报
回复
将json反序列化为对象,然后对对象进行操作。 1,反序列化为JArray,然后操作JArray/JObject. 2,创建c# model类,匹配json数据模型。 3,操作对象完毕,将对象序列化为Json,保存。
全栈极简 2013-11-11
  • 打赏
  • 举报
回复
下载newtonsoft.json.dll,下载地址:http://download.csdn.net/detail/guwei4037/5853053
 public class Data
{
public List<Data1> children { get; set; }
public string date_added { get; set; }
public string date_modified { get; set; }
public string id { get; set; }
public string name { get; set; }
public string type { get; set; }
}

public class Data1
{
public Data1(string date_added, string id, string name, string type, string url)
{
this.date_added = date_added;
this.id = id;
this.name = name;
this.type = type;
this.url = url;
}

public string date_added { get; set; }
public string id { get; set; }
public string name { get; set; }
public string type { get; set; }
public string url { get; set; }
}

 string json = "{\"children\": [ {\"date_added\": \"13021725292433000\",\"id\": \"121\", \"name\": \"asp.net - How to implement a custom panel with INamingContainer? - Stack Overflow\",\"type\": \"url\",\"url\": \"http://stackoverflow.com/questions/3671712/how-to-implement-a-custom-panel-with-inamingcontainer\"}, {\"date_added\": \"13021968277554750\",\"id\": \"122\",\"name\": \"Control firefox bookmarks by sqlite\",\"type\": \"url\",\"url\": \"http://www.cnblogs.com\"}],\"date_added\": \"13022224650424250\",\"date_modified\": \"13027602398784788\",\"id\": \"6\",\"name\": \"asp.net\u63A7\u4EF6\u6280\u672F\",\"type\": \"folder\"}";

Data data = JsonConvert.DeserializeObject<Data>(json);
data.children.Add(new Data1("13021968277554750", "123", "asp.net mvc", "url", "http://asp.net.com"));

string newJson = JsonConvert.SerializeObject(data);//结果
wind_cloud2011 2013-11-11
  • 打赏
  • 举报
回复
C#解析json文件的方法 http://www.cnblogs.com/txw1958/archive/2012/08/01/csharp-json.html
bdmh 2013-11-11
  • 打赏
  • 举报
回复
去下载处理json的dll Newtonsoft.Json.dll
Phoozyan 2013-11-11
  • 打赏
  • 举报
回复
Phoozyan 2013-11-11
  • 打赏
  • 举报
回复
引用 5 楼 u012536474 的回复:
[quote=引用 3 楼 guwei4037 的回复:] 下载newtonsoft.json.dll,下载地址:http://download.csdn.net/detail/guwei4037/5853053
你的方法很好,很直观,但是其实我这个是Chrome浏览器的书签Json文件,大致层级为: root-->书签工具栏-->书签文件夹-->书签子文件夹-->书签,这样最少要创建三个对象Model,太浪费和耗时了,有没有其他方法呢?[/quote] chrome书签是一种复杂的Json数据格式,存在多层嵌套(文件夹--子文件夹--子文件夹--...--书签),chrome专属。这种情况下,使用反序列化来处理,反而不是一种好方法。两种建议: 1、使用正则转换为XML进行处理。 2、放弃处理该文件,直接使用Chrome扩展文档API,这里是地址
MXCZ945 2013-11-11
  • 打赏
  • 举报
回复
引用 8 楼 u012238529 的回复:
我都是用的json.net做的!
好人,json.net是什么,是Newtonsoft.json.dll吗?
兰峰如月 2013-11-11
  • 打赏
  • 举报
回复
我都是用的json.net做的!
MXCZ945 2013-11-11
  • 打赏
  • 举报
回复
并且有时候,children无法判断是书签还是子文件夹
雨雪纷纷 2013-11-11
  • 打赏
  • 举报
回复
突然间发现好多都忘了。。。
MXCZ945 2013-11-11
  • 打赏
  • 举报
回复
引用 3 楼 guwei4037 的回复:
下载newtonsoft.json.dll,下载地址:http://download.csdn.net/detail/guwei4037/5853053
你的方法很好,很直观,但是其实我这个是Chrome浏览器的书签Json文件,大致层级为: root-->书签工具栏-->书签文件夹-->书签子文件夹-->书签,这样最少要创建三个对象Model,太浪费和耗时了,有没有其他方法呢?

110,539

社区成员

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

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

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