java中json重复数据结构_JAVA把各种数据结构转换为JSON格式

Java代码

import java.lang.reflect.Field;

import java.lang.reflect.InvocationTargetException;

import java.lang.reflect.Method;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.Iterator;

import java.util.List;

import java.util.Map;

import net.sf.json.JSONArray;

import com.hysoft.commons.test.User;

/************************************************************************

* JSON工具类

*

* @author cobra

* @see com.hysoft.commons.xml.JSONHelper

* @since jdk1.6

* @version version1.0

* @date 2010/09/03

*

************************************************************************/

public class JSONHelper {

/**

* 传入一个简单的List经过解析返回JSON

*

* @param list  传入参数list

*

* @return String 返回解析过后的JSON格式例如[{"abc"},{"edf"},{"xyz"}]

*/

public static String getJSONByList(List> list) {

StringBuffer buffer = new StringBuffer();

buffer.append("[{");

for (int i = 0; i < list.size(); i++) {

buffer.append("\"").append(list.get(i) != null ? list.get(i).toString() : "").append("\",");

}

return buffer.substring(0, buffer.length() - 1).concat("}]");

}

/**

* 传入一个Map经过解析返回JSON

*

* @param map 传入参数map

*

* @return String 返回解析过后的JSON格式例如[{"age","24","name","ty"}]

*/

@SuppressWarnings("unchecked")

public static String getJSONByMap(Map map) {

Iterator> iter = map.entrySet().iterator();

StringBuffer buffer = new StringBuffer();

buffer.append("[{");

while (iter.hasNext()) {

Map.Entry entry = (Map.Entry) iter.next();

buffer.append("\"").append(entry.getKey() != null ? entry.getKey() : "").append("\",").append("\"").append(entry.getValue() != null ? entry.getValue() : "").append("\",");

}

return buffer.substring(0, buffer.length() - 1).concat("}]");

}

/**

* 传入一个List经过解析返回JSON

*

* @param list 传入参数list

*

* @return String 返回解析过后的JSON格式例如[{"age","24","name","ty"},{"age","20","name","tt"}]

*/

public static String getJSONByBeanList(List> list) {

StringBuffer buffer = new StringBuffer();

try {

Class> clazz = list.get(0).getClass();

Field fields[] = clazz.getDeclaredFields();

buffer.append("[");

for (int i = 0; i < list.size(); i++) {

buffer.append("{");

for (int j = 0; j < fields.length; j++) {

String fieldName = fields[j].getName();

String firstLetter = fieldName.substring(0, 1).toUpperCase(); // 获得和属性对应的getXXX()方法的名字

String getMethodName = "get" + firstLetter + fieldName.substring(1); // 获得和属性对应的getXXX()方法的名字

Method getMethod = clazz.getMethod(getMethodName, new Class[] {}); // 获得和属性对应的getXXX()方法

Object value = getMethod.invoke(list.get(i), new Object[] {});

buffer.append("\"" + fieldName + "\":\"" + value + "\",");

}

buffer = new StringBuffer(buffer.substring(0, buffer.length()-1));

buffer.append("},");

}

} catch (SecurityException e) {

e.printStackTrace();

} catch (NoSuchMethodException e) {

e.printStackTrace();

} catch (IllegalArgumentException e) {

e.printStackTrace();

} catch (IllegalAccessException e) {

e.printStackTrace();

} catch (InvocationTargetException e) {

e.printStackTrace();

}

return buffer.substring(0, buffer.length() - 1).concat("]");

}

/**

* 传入一个Bean经过解析返回JSON

*

* @param object 传入参数Bean

*

* @return String 返回解析过后的JSON格式例如[{"age","24","name","ty"}]

*/

public static String getJSONByBean(Object object) {

StringBuffer buffer = new StringBuffer();

try {

Class> clazz = object.getClass();

Field fields[] = clazz.getDeclaredFields();

buffer.append("[{");

for (int j = 0; j < fields.length; j++) {

String fieldName = fields[j].getName();

String firstLetter = fieldName.substring(0, 1).toUpperCase();

String getMethodName = "get" + firstLetter + fieldName.substring(1);

Method getMethod = clazz.getMethod(getMethodName, new Class[] {});

Object value = getMethod.invoke(object, new Object[] {});

buffer.append("\"" + fieldName + "\":\"" + value + "\",");

}

} catch (SecurityException e) {

e.printStackTrace();

} catch (NoSuchMethodException e) {

e.printStackTrace();

} catch (IllegalArgumentException e) {

e.printStackTrace();

} catch (IllegalAccessException e) {

e.printStackTrace();

} catch (InvocationTargetException e) {

e.printStackTrace();

}

return buffer.substring(0, buffer.length() - 1).concat("}]");

}

public static String getXMLByJSON(Object object) {

return null;

}

public static void main(String[] args){

/**===========================================================================**/

List list = new ArrayList();

list.add("first");

list.add("second");

String jsonArray = JSONHelper.getJSONByList(list);

System.out.println(jsonArray);

/**===========================================================================**/

Map map = new HashMap();

map.put("name", "tianyuan");

map.put("age", "24");

String jsonMap = JSONHelper.getJSONByMap(map);

System.out.println(jsonMap);

/**===========================================================================**/

List list1 = new ArrayList();

User user0 = new User();

user0.setUsername("ty");

user0.setAge(24);

user0.setTel("137***");

user0.setAddress("南京");

list1.add(user0);

User user1 = new User();

user1.setUsername("tz");

user1.setAge(21);

user1.setTel("158***");

user1.setAddress("南京");

list1.add(user1);

String jsonList = JSONHelper.getJSONByBeanList(list1);

System.out.println(jsonList);

/**===========================================================================**/

User user2 = new User();

user2.setUsername("tianyuan");

user2.setAge(24);

user2.setTel("13770583115");

user2.setAddress("南京");

JSONArray jsonBean = JSONArray.fromObject(user0);

System.out.println(jsonBean);

}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/382996.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

字节字符区别Java_【JAVA基础】字符数组与字节数组的区别

String.getBytes()和String.tocharArray()&#xff0c;字节数组和字符数组的区别String.getBytes()是将字符串转化为一个字节数组。而String.toCharArray()是将一个字符串转化为一个字符数组。【例如】byte bys[] “国庆60周年”.getBytes();char chs[]“国庆60周年”.toCharAr…

mysql日志管理_关于MySQL的日志管理(binlog)

关于MySQL的日志管理(binlog)一、查看binlog的启用状态最常用的mysql版本是5.7&#xff0c;默认不开启binlog&#xff0c;可以在登录mysql之后&#xff0c;利用以下命令查看当前的binlog启用状态&#xff1a;mysql show variables like "%log_bin%";图中显示“ON”&a…

java精确测量文本高度_基于文本精确计算UITableViewCell的高度

我正在开发一个ios应用程序&#xff0c;并使用autolayout我正在尝试创建一个具有不同行高的表视图 .原型单元的布局如下&#xff1a;我有一个主单元格(黑色)里面有一个UIView(红色)&#xff0c;里面有一个UILabel(蓝色)我添加的Autolayout约束如图所示&#xff1a;The UIView h…

php做一个微信退款,PHP实现微信退款功能

大家好&#xff0c;我是小编&#xff0c;最近在调微信退款接口&#xff0c;发现有许多坑&#xff0c;更大家分享一下① 要是在测试的时候&#xff0c;网页提示 curl 58 说明 证书的路径出现问题(这里要填物理路径&#xff0c;也就是绝对路径)②网页提示curl 52 说明你的证书引入…

php显示时间,php实现用已经过去多长时间的方式显示时间

本文实例讲述了php用已经过去多长时间的方式显示时间的方法。分享给大家供大家参考。具体如下&#xff1a;这里以一种可读性比较好的方式显示已经过去多长时间&#xff0c;比如&#xff1a;距离现在10秒&#xff0c;距离现在1天等等。function time_is_older_than($t, $check_t…

java中日期计算时间差,java中依据,两个日期,计算时间差

java中根据&#xff0c;两个日期&#xff0c;计算时间差。分别获取两个时间的毫秒数Date.getTime()&#xff0c;相减&#xff0c;得到的值/1000为秒数&#xff0c;/60*1000为分钟数&#xff0c;/60*60*1000为小时数。/*** 计算时间差** param begin* param end* return*/public…

php获取token失败,微信开发,老是获取token失败

微信开发&#xff0c;总是获取token失败$appid wx1aabc8673b8f103a;$appsecret 9aa99fc9db9bf1321c1afe05feb29b6c;$url "https://api.weixin.qq.com/cgi-bin/token?grant_typeclient_credential&appid$appid&secret$appsecret";$urlhttps://api.weixin.…

2008下php上传文件崩溃,php – 当用户反复尝试上传无效文件类型时,网站崩溃

我试图理解错误……我有一个允许用户上传CSV的网络应用程序.如果文件类型不是CSV,则不会发生任何操作,页面只显示“无效的文件类型”.如果用户尝试上载无效的文件类型并反复单击触发处理上载的PHP文件的按钮,则PHP文件最终会无响应,并且网站崩溃时出现以下错误&#xff1a;&quo…

java错误1601解决方法,求助解决错误

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1610)at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1590)at …

java == hashcode,java中==和equals和hashCode的区别

java中和equals和hashCode的区别 的作用&#xff1a;基本类型&#xff1a;比较的就是值是否相同引用类型&#xff1a;比较的就是地址值是否相同(确切的说&#xff0c;是堆内存地址)equals 的作用:引用类型&#xff1a;默认情况下&#xff0c;比较的是地址值。public boolean eq…

java经典设计模式4,JAVA设计模式(4) 之装饰设计模式

在现实生活中我们的汽车都具备跑的功能&#xff0c;我们可以不改变汽车原有功能的前提下&#xff0c;把它放入一个装修厂&#xff0c;开进去让里面给咱们的车子做一些装饰&#xff0c;开出来之后呢&#xff0c;就具备了上天的功能了(技术可达是可以的哈)&#xff0c;这就给原来…

java读取gxk文件,Java中常见的IO流及其使用

Java中IO流分成两大类&#xff0c;一种是输入流&#xff0c;所有的输入流都直接或间接继承自InputStream抽象类&#xff0c;输入流作为数据的来源&#xff0c;我们可以通过输入流的read方法读取字节数据&#xff1b;另一种是输出流&#xff0c;所有的输出流都直接或间接继承自O…

matlab+voronoin函数,在Voronoi区域中生成随机点,并创建具有高维数据的Voronoi区域...

我正在使用k-means聚类算法&#xff0c;并且对于每个聚类质心&#xff0c;我试图为质心生成n维Voronoi区域 . 之后我需要从Voronoi区域生成随机点 .我已经尝试使用Matlab / Octave和scipy来获得n维Voronoi区域 . 但我有两个问题 .生成顶点和区域后&#xff0c;如何从区域生成随…

matlab双纵轴刻度覆盖问题,求助: matlab双纵轴换图问题

非常感谢&#xff01;不过&#xff0c;y2的范围是-1*(10^6),7*(10^6),但是不等分:(把y1的范围调成0.4:0.2:5.8也有28个元素&#xff0c;然后y2也有28个元素&#xff0c;但是不等分&#xff0c;是个曲线&#xff0c;而且&#xff0c;这个曲线的值与y1是有关的。数据见附件syms d…

php最新图片漏洞,2018最新PHP漏洞利用技巧

本文学习了几种新式的php exploit方法&#xff0c;在此做一笔记文件删除漏洞, unlink()Phar 反序列化, file*()PHP对象实例化, ReflectionClass()0x01 WordPress Design Flaw Leads to WooCommerce RCEWooCommerce 3.4.6本版本之前存在任意删除漏洞&#xff0c;因为WordPress的…

php v-for=,Vue中v-for循环节点的实现代码

本篇文章给大家带来的内容是关于Vue中v-for循环节点的实现代码&#xff0c;有一定的参考价值&#xff0c;有需要的朋友可以参考一下&#xff0c;希望对你有所帮助。Title父循环第一次子循环第一次json数据的第几条数值{{index}}{{indo}}{{bp.index}}{{bp.childName}}let ernew …

matlab寻找向量最小值,matlab – 在排序向量中快速搜索大于x的最小值

由于输入已经排序,自定义二进制搜索应该有效(您可能需要对边缘情况进行一些更新,即请求的值小于数组的所有元素)&#xff1a;function [result, res2] binarySearchExample(val)%// Generate example data and sort itN 100000000;a rand(N, 1);a sort(a);%// Run the algo…

搜matlab代码的网站,LTE小区搜索matlab仿真

【实例简介】LTE小区搜索过程的matlab仿真&#xff0c;比较详细&#xff0c;内容不错【实例截图】【核心代码】35738649matlab└── matlab├── Bc.m├── CellSearch.m├── PSS_detection_correction.m├── Tc.m├── absx2.m├── add_header_to_bin.m├── add_h…

php过气了吗,留几手 留几手过气原因

1、很多时候&#xff0c;人们做事情只是为了自己&#xff0c;没有任何理由&#xff0c;没有任何结果&#xff0c;只是为了满足一些内心的期望。2、太理智的人&#xff0c;往往爱到一半&#xff0c;本能地退却。唯一突出的是他的JB。3、怎样才能自由地睡去女文艺青年&#xff1f…

live2d PHP,Live2dHistoire_setting.php

if(!defined(EMLOG_ROOT)) {exit(error!);}function plugin_setting_view(){$live2d_setunserialize(ltrim(file_get_contents(dirname(__FILE__)./live2d.com.php),<?php die; ?>));?>KEY&#xff1a;音乐1&#xff1a;音乐2&#xff1a;音乐3&#xff1a;音乐4&a…