json是一个比xml跟简单的数据传输格式,但是在java中由于是将类与数据对应,类的成员变量对象是数据中的属性,所以要求属性中没有特殊字符,比如逗号什么的。最近有个项目有必需用到有特殊字符的key所以把stringtree的源码看了下,修改了下,就ok了。(注意:json本身是支持key含有特殊字符的,是可以编译通过的,只是java中多了限制)
private void bean(Object object) {
add("{");
BeanInfo info;
boolean addedSomething = false;
try {
info = Introspector.getBeanInfo(object.getClass());
PropertyDescriptor[] props = info.getPropertyDescriptors();
for (int i = 0; i < props.length; ++i) {
PropertyDescriptor prop = props[i];
String name = prop.getName();
Method accessor = prop.getReadMethod();
if ((emitClassName==true || !"class".equals(name)) && accessor != null) {
if (!accessor.isAccessible()) accessor.setAccessible(true);
Object value = accessor.invoke(object, (Object[])null);
if (addedSomething) add(',');
add(name+",//www.ttk.com", value);
addedSomething = true;
}
}
Field[] ff = object.getClass().getFields();
for (int i = 0; i < ff.length; ++i) {
Field field = ff[i];
if (addedSomething) add(',');
add(field.getName(), field.get(object));
addedSomething = true;
}
} catch (IllegalAccessException iae) {
iae.printStackTrace();
} catch (InvocationTargetException ite) {
ite.getCause().printStackTrace();
ite.printStackTrace();
} catch (IntrospectionException ie) {
ie.printStackTrace();
}
add("}");
}
这个只是简单的在每个key后面加了个后缀,如何动态加还要再改下,现在没时间,等有时间在慢慢改。
分享到:
- 2009-03-04 13:55
- 浏览 1526
- 评论(0)
- 论坛回复 / 浏览 (0 / 2461)
- 查看更多
相关推荐
在JavaScript中,JSON对象提供了parse()方法,可以将JSON字符串转换为JavaScript对象,如`let data = JSON.parse(jsonString)`。然而,仅仅解析数据并不足以构建一个树形结构,我们需要对解析后的数据进行处理,将其...
通过研究这些示例,开发者可以学习如何在ASP.NET项目中集成jsTree,利用C#处理数据并以JSON格式返回,以及如何在前端设置和操作jsTree。 总之,jsTree结合ASP.NET和C#可以构建出功能强大的树形视图,适合用于文件...
需要注意的是,zTree还有许多高级特性,如节点的右键菜单、拖拽操作、节点的增删改查等,可以根据具体需求进行深入研究和配置。在实际开发中,还要考虑错误处理、性能优化等问题,确保用户体验的顺畅。
**如何将数据库中的层次数据转换成对应的层次结构的JSON或XML格式的字符串,返回给客户端的JavaScript树形控件?** 这是一个关键问题,涉及到数据库中的层次数据结构与前端数据展示之间的桥梁建设。具体来说,数据...
在Ext JS提供的众多UI控件中,树形菜单(Tree Menu)是最为常用的一种控件,适用于显示具有层级关系的数据,如文件目录、组织结构等。传统上,树形菜单有两种生成方式:一次性生成全部树节点和异步加载树节点。 ...
7. **XML和JSON处理**:`xml.etree.ElementTree`处理XML,`json`模块则用于JSON数据的编码和解码。 8. **加密和哈希**:`hashlib`、`hmac`和`cryptography`模块提供了加密和哈希算法。 9. **系统信息**:`platform`...
对于数据模型,MongoDB文档通常由JSON表示,因此在Java中,你可以使用POJO(Plain Old Java Object)来映射这些文档。在实体类中,使用`@Id`注解指定主键字段,例如: ```java import org.springframework.data....
Python的`json`、`xml.etree.ElementTree`、`BeautifulSoup`和`base64`库可以帮助我们解析和提取这些数据。 3. **文件操作**:有时旗标可能隐藏在本地文件系统中,或者你需要处理下载的文件。Python的`os`、`shutil...
8. **编译配置(tsconfig.json)**:每个TypeScript项目都有一个配置文件tsconfig.json,用于指定编译选项,如目标ES版本、模块系统、源码映射等。了解这个文件对于理解和构建nexos_Software至关重要。 9. **构建...
为了高效地处理字符串,开发者们经常设计自定义的字符串类来扩展标准库中的`std::string`。"superstring"项目就是一个这样的例子,它旨在提供一个功能更为强大和灵活的字符串类,以满足更复杂的字符串操作需求。下面...
这包括基本类型(如 string、number、boolean)、接口( Interfaces)、枚举(Enums)和类(Classes)等。在 "proj-tcc-gabe" 中,我们可以预期代码使用了这些特性来定义和操作数据结构。 2. **模块系统**:...