1.首先需要写三个类,这个类和json中对象的数据结构应该是对应的,这里的例子可能忽略了部分属性和数据类型,仅供参考:
//Json数据的对象结构
public class MyJson
{
public List<MyTreeNodeBean> beanList { get; set; }
}
//树形结构中的对象结构
public class MyBean
{
public string id { get; set; }
public string title { get; set; }
public string note { get; set; }
public MyImage image { get; set; }
public string maxid { get; set; }
public string fold { get; set; }
public string putright { get; set; }
public List<MyTreeNodeBean> children { get; set; }
public MyBean()
{
}
}
//对象里面Image的结构
public class MyImage
{
public string url { get; set; }
public string border { get; set; }
public string height { get; set; }
public string width { get; set; }
}
2.因为json是树形结构的数据,所以需要递归遍历去寻找对应ID的对象
//这个类负责按照ID寻找对象
public class MyHelper
{
//FindById函数的重载函数,用来第一次调用
public static MyBean FindById(string id, string jsonString)
{
return FindById(id, jsonString, null);
}
//FindById递归寻找函数
public static MyBean FindById(string id, string jsonString, List<MyBean> beanList)
{
if (beanList == null) {
//第一次调用的时候,寻找的列表是最高层的根底下的对象列表
//将json数据转换成C#对应类型(用了Newtonsoft.Json)
MyJson json = JavaScriptConvert.DeserializeObject<MyJson>(jsonString);
beanList = json.beanList;
}
//遍历对象列表,寻找对应ID的对象
MyBean returnBean = null;
foreach (MyBean bean in beanList) {
if (bean.id == id) {
//找到了
returnBean = bean;
} else {
//递归寻找:
//如果不是,就寻找此对象的children列表
returnBean = FindById(id, jsonString, bean.children);
}
//如果找到,就跳出寻找
if (returnBean != null) {
break;
}
}
return returnBean;
}
}
3.使用实例:
//假设json的字符串在变量jsonString中
MyBean bean = MyHelper.FindById("33", jsonString);
if (bean != null) {
//使用查找出来的bean
}
分享到:
相关推荐
本代码实现的是通过数据库部分读到的json数据,填充到table表格中,并且也可以实现table表格中用户自行进行增删等操作,主要是jquery、js
ASP也能处理JSON数据?呵呵,刚才在Pjblog论坛上看到一个兄弟写的文章,没有测试,不过理论上一定是可以的~ 太晚了,不测试了。 以前处理JSON太麻烦了,输出还好说,循环一下就可以了,解析真的很头疼。所以遇到 这种...
开发过程中经常会遇到json数据的处理,而单独对json数据进行增删改并不方便,尤其是Geojson文件的处理,通过对网络资料的整理总结,下面介绍Java语言方法对json数据进行读取、添加、删除与修改操作。
js数据格式和json数据格式,各有各的用处,就个人而言,json更好用一点,js自身的数组和对像限制比较多。 以js的数组举例: var a = ['1']; a[5] = 52; a.length //这儿的结果是6,也就是说,中间的key会自动补全,...
向test_lyl2主题中循环写入10条json数据 注意事项:要写入json数据需加上value_serializer参数,如下代码 ''' producer = KafkaProducer( value_serializer=lambda v: json.dumps(v).encode('utf-8'), bootstrap...
使用递归方法循环读取省市区的json文件数据,并保存到数据库中,经测试可以直接使用,代码里包含省市区的json文件,递归读取方法,可用作系统省市区数据初始化作用
android下 把json字符串解析成Hasmap格式数据
解决spring mvc中jason无限死循环的方案
递归循环读取省市区json文件数据,并保存到数据库中(很全面) 其中包含代码,json文件,实体类代码。轻松上手
本文为大家介绍下如何使用js循环json数据的列,简单几步轻松实现
完整的网页代码,呈现出表单form中的json格式数据的真实面貌。
用asp输出json格式,生成json对象。 json.asp格式化json类。ajax返回json格式数据
3”, rid: Math.round(Math.random() * 10) }, //向服务器发出的查询字符串 //对返回的JSON数据进行处理 function(json) { //循环取json中的数据,并呈现在列表中 $(“#column_0_1”).empty(); var colstr = ‘<h2>...
java实现JSON文件读取、JSON文件持续写入,即可以多次将JSON数据写入到JSON文件,且文件不会被覆盖。【JSON.jar】+【JSON文件例子】
本文实例讲述了js 递归json树实现根据子id查父id的方法。分享给大家供大家参考,具体如下: ...json数据: orgTreeData:{ nodeId:19A5B, nodeName:预分析用户:1313.85万人, nodeType:root, expand:true, dat
C#对多级json解析,非常实用,此代码写在load事件里面,然后可以了解解析json的原理。尤其是多级解析。
1.我们看到字典形式的数据如下所示 list=[[2891-1, D],[2892-1, D],[2896-1, B],[2913-1, 0],[2913-2, 1],...import json import re from xlsxwriter import Workbook datanew = {} #result数据是查询数据库中的li
数据结构为数组中包含对象–树形结构,用Vue组件的写法实现以下的效果: 树形列表,缩进显示层级,第5级数据加底色,数据样式显色,点击展开折叠数据。本文为用Vue实现方式,另有一篇为用knockout.js的实现方法。 ...
主要介绍了lua中操作json数据的方法,本文讲解使用cjson包操作JSON数据,并给出了操作实例,需要的朋友可以参考下