代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
Java
】
将pojo对象的属性值提取出来,组成json格式的数据
作者:
/ 发布于
2011/1/14
/
801
<div><span style="color: #0000ff">import</span><span style="color: #000000"> java.lang.reflect.Field; </span><span style="color: #0000ff">import</span><span style="color: #000000"> java.util.Collection; </span><span style="color: #0000ff">import</span><span style="color: #000000"> java.util.Iterator; </span><span style="color: #008000">/*</span><span style="color: #008000"> * 将pojo对象的属性值提取出来,组成json格式的数据 * 当前版本只能对最基本的pojo对象进行转化,类似于下面的格式: public class Pojo { private String name; private int age; public int getAge() { return age; } public String getName() { return name; } public void setAge(int age) { this.age = age; } public void setName(String name) { this.name = name; } } * 单个对象返回{'name':age}格式;集合对象返回{'name':age},{'name':age}... * * author:scriptguy * date: 2010/04/06 </span><span style="color: #008000">*/</span><span style="color: #000000"> </span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">class</span><span style="color: #000000"> JsonUtil { </span><span style="color: #008000">/*</span><span style="color: #008000"> ** 暴露出来的方法,传入需要将属性值转换为json数据格式的pojo ** 会抛出IllegalAccessException异常,需要捕捉 </span><span style="color: #008000">*/</span><span style="color: #000000"> </span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">static</span><span style="color: #000000"> String toJson(Object obj) </span><span style="color: #0000ff">throws</span><span style="color: #000000"> IllegalAccessException{ Class cla </span><span style="color: #000000">=</span><span style="color: #000000"> obj.getClass(); Field[] fields </span><span style="color: #000000">=</span><span style="color: #000000"> cla.getDeclaredFields(); String[] names </span><span style="color: #000000">=</span><span style="color: #000000"> fieldToNames(fields); Object[] values </span><span style="color: #000000">=</span><span style="color: #000000"> fieldToValues(fields,obj); String json </span><span style="color: #000000">=</span><span style="color: #000000"> produceToJson(names,values); </span><span style="color: #0000ff">return</span><span style="color: #000000"> json; } </span><span style="color: #0000ff">private</span><span style="color: #000000"> </span><span style="color: #0000ff">static</span><span style="color: #000000"> String[] fieldToNames(Field[] fields) { String[] names </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> String[fields.length]; </span><span style="color: #0000ff">for</span><span style="color: #000000">(</span><span style="color: #0000ff">int</span><span style="color: #000000"> i </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">;i </span><span style="color: #000000"><</span><span style="color: #000000"> fields.length;i</span><span style="color: #000000">++</span><span style="color: #000000">) { fields[i].setAccessible(</span><span style="color: #0000ff">true</span><span style="color: #000000">);</span><span style="color: #008000">//</span><span style="color: #008000">将此对象的 accessible 标志设置为可以读取</span><span style="color: #008000"> </span><span style="color: #000000"> names[i] </span><span style="color: #000000">=</span><span style="color: #000000"> fields[i].getName(); } </span><span style="color: #0000ff">return</span><span style="color: #000000"> names; } </span><span style="color: #0000ff">private</span><span style="color: #000000"> </span><span style="color: #0000ff">static</span><span style="color: #000000"> Object[] fieldToValues(Field[] fields,Object obj) </span><span style="color: #0000ff">throws</span><span style="color: #000000"> IllegalAccessException{ Object[] values </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> Object[fields.length]; </span><span style="color: #0000ff">for</span><span style="color: #000000">(</span><span style="color: #0000ff">int</span><span style="color: #000000"> i </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">;i </span><span style="color: #000000"><</span><span style="color: #000000"> fields.length;i</span><span style="color: #000000">++</span><span style="color: #000000">) { values[i] </span><span style="color: #000000">=</span><span style="color: #000000"> fields[i].get(obj); } </span><span style="color: #0000ff">return</span><span style="color: #000000"> values; } </span><span style="color: #0000ff">private</span><span style="color: #000000"> </span><span style="color: #0000ff">static</span><span style="color: #000000"> String produceToJson(String[] names,Object[] values) { </span><span style="color: #0000ff">if</span><span style="color: #000000">(names.length </span><span style="color: #000000">!=</span><span style="color: #000000"> values.length) { </span><span style="color: #0000ff">new</span><span style="color: #000000"> RuntimeException(</span><span style="color: #000000">"</span><span style="color: #000000">转化json数据出错!!!</span><span style="color: #000000">"</span><span style="color: #000000">); } StringBuilder json </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> StringBuilder(); json.append(</span><span style="color: #000000">"</span><span style="color: #000000">{</span><span style="color: #000000">"</span><span style="color: #000000">); </span><span style="color: #0000ff">for</span><span style="color: #000000">(</span><span style="color: #0000ff">int</span><span style="color: #000000"> i </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">;i </span><span style="color: #000000"><</span><span style="color: #000000"> names.length;i</span><span style="color: #000000">++</span><span style="color: #000000">) { json.append(</span><span style="color: #000000">"</span><span style="color: #000000">'</span><span style="color: #000000">"</span><span style="color: #000000">); json.append(names[i]); json.append(</span><span style="color: #000000">"</span><span style="color: #000000">':</span><span style="color: #000000">"</span><span style="color: #000000">); processFieldValue(values[i],json); </span><span style="color: #0000ff">if</span><span style="color: #000000">(i </span><span style="color: #000000"><</span><span style="color: #000000"> names.length </span><span style="color: #000000">-</span><span style="color: #000000"> </span><span style="color: #000000">1</span><span style="color: #000000">) { json.append(</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">"</span><span style="color: #000000">); } } json.append(</span><span style="color: #000000">"</span><span style="color: #000000">}</span><span style="color: #000000">"</span><span style="color: #000000">); </span><span style="color: #0000ff">return</span><span style="color: #000000"> json.toString(); } </span><span style="color: #0000ff">private</span><span style="color: #000000"> </span><span style="color: #0000ff">static</span><span style="color: #000000"> </span><span style="color: #0000ff">void</span><span style="color: #000000"> processFieldValue(Object obj,StringBuilder json) { </span><span style="color: #0000ff">if</span><span style="color: #000000">(obj </span><span style="color: #0000ff">instanceof</span><span style="color: #000000"> Number) { json.append(obj); } </span><span style="color: #0000ff">else</span><span style="color: #000000"> { json.append(</span><span style="color: #000000">"</span><span style="color: #000000">'</span><span style="color: #000000">"</span><span style="color: #000000">); json.append(obj); json.append(</span><span style="color: #000000">"</span><span style="color: #000000">'</span><span style="color: #000000">"</span><span style="color: #000000">); } } </span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">static</span><span style="color: #000000"> String allToJson(Collection coll) </span><span style="color: #0000ff">throws</span><span style="color: #000000"> IllegalAccessException{ Iterator iterator </span><span style="color: #000000">=</span><span style="color: #000000"> coll.iterator(); StringBuilder json </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> StringBuilder(); Object obj; </span><span style="color: #0000ff">while</span><span style="color: #000000">(iterator.hasNext()) { obj </span><span style="color: #000000">=</span><span style="color: #000000"> iterator.next(); json.append(toJson(obj)); json.append(</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">"</span><span style="color: #000000">); } </span><span style="color: #0000ff">int</span><span style="color: #000000"> delete </span><span style="color: #000000">=</span><span style="color: #000000"> json.lastIndexOf(</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">"</span><span style="color: #000000">); json </span><span style="color: #000000">=</span><span style="color: #000000"> json.deleteCharAt(delete); </span><span style="color: #0000ff">return</span><span style="color: #000000"> json.toString(); } </span><span style="color: #008000">/*</span><span style="color: #008000"> ** </span><span style="color: #008000">*/</span><span style="color: #000000"> } </span><span style="color: #0000ff">import</span><span style="color: #000000"> java.util.Collection; </span><span style="color: #0000ff">import</span><span style="color: #000000"> java.util.</span><span style="color: #000000">*</span><span style="color: #000000">; </span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">class</span><span style="color: #000000"> TestJsonUtil { </span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">static</span><span style="color: #000000"> </span><span style="color: #0000ff">void</span><span style="color: #000000"> main(String[] args) </span><span style="color: #0000ff">throws</span><span style="color: #000000"> Exception{ Pojo pojo1 </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> Pojo(</span><span style="color: #000000">"</span><span style="color: #000000">list</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">23</span><span style="color: #000000">); Pojo pojo </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> Pojo(</span><span style="color: #000000">"</span><span style="color: #000000">scriptguy</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">22</span><span style="color: #000000">); List</span><span style="color: #000000"><</span><span style="color: #000000">Object</span><span style="color: #000000">></span><span style="color: #000000"> lista </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> ArrayList</span><span style="color: #000000"><</span><span style="color: #000000">Object</span><span style="color: #000000">></span><span style="color: #000000">(); lista.add(pojo1); lista.add(pojo); System.out.println(JsonUtil.allToJson(lista)); } } </span> 结果: {'name':'list','age':23},{'name':'scriptguy','age':22} </div>
试试其它关键字
同语言下
.
List 切割成几份 工具类
.
一行一行读取txt的内容
.
Java PDF转换成图片并输出给前台展示
.
java 多线程框架
.
double类型如果小数点后为零则显示整数否则保留两位小
.
将图片转换为Base64字符串公共类抽取
.
sqlParser 处理SQL(增删改查) 替换schema 用于多租户
.
JAVA 月份中的第几周处理 1-7属于第一周 依次类推 29-
.
java计算两个经纬度之间的距离
.
输入时间参数计算年龄
可能有用的
.
List 切割成几份 工具类
.
一行一行读取txt的内容
.
Java PDF转换成图片并输出给前台展示
.
java 多线程框架
.
double类型如果小数点后为零则显示整数否则保留两位小
.
将图片转换为Base64字符串公共类抽取
.
sqlParser 处理SQL(增删改查) 替换schema 用于多租户
.
JAVA 月份中的第几周处理 1-7属于第一周 依次类推 29-
.
java计算两个经纬度之间的距离
.
输入时间参数计算年龄
贡献的其它代码
Label
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3