`
kfcman
  • 浏览: 399653 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

/** * 数据转换工具类,用于将单个对象、List转换为json、xml格式的字符串 */

    博客分类:
  • java
 
阅读更多
注意:List中只有存放的是相应的Java对象,才能正确转换成json、xml格式
1、核心
Java代码  收藏代码
  1. package com.dreamoa.util;  
  2.   
  3. import java.util.ArrayList;  
  4. import java.util.HashMap;  
  5. import java.util.List;  
  6. import java.util.Map;  
  7.   
  8. import com.dreamoa.domain.Menu;  
  9. import com.thoughtworks.xstream.XStream;  
  10. import com.thoughtworks.xstream.io.xml.DomDriver;  
  11.   
  12. import net.sf.json.JSONObject;  
  13.   
  14. /** 
  15.  * 数据转换工具类,用于将单个对象、List转换为json、xml格式的字符串 
  16.  */  
  17. public class ExtUtil {  
  18.       
  19.     /** 
  20.      * 将list对象转换为json格式的数据 
  21.      * @param totalNum,记录总数 
  22.      * @param inList,需要转换的list 
  23.      * @return 
  24.      */  
  25.     public static String getJsonFromList(long totalNum,List inList){  
  26.         Map<String, Object> map = new HashMap<String, Object>();  
  27.         map.put("totalNum", inList.size());  
  28.         map.put("resultList", inList);  
  29.         JSONObject jsonObj = JSONObject.fromObject(map);  
  30.         return jsonObj.toString();  
  31.     }  
  32.       
  33.     /** 
  34.      * 将单个对象转换为json格式,此对象不能为集合类型 
  35.      * @param inObject 
  36.      * @return 
  37.      */  
  38.     public static String getJsonFromObject(Object inObject){  
  39.         JSONObject jsonString = JSONObject.fromObject(inObject);  
  40.         return jsonString.toString();  
  41.     }  
  42.       
  43.     /** 
  44.      * 将List转化为xml格式的数据 
  45.      * @param totalNum 
  46.      * @param inList,需要转换的list 
  47.      * @return String 
  48.      */  
  49.     public static String getXmlFromList(long totalNum,List inList){  
  50.         Total total = new Total();  
  51.         total.setTotalNum(totalNum);  
  52.         //创建临时的List对象  
  53.         List results = inList;  
  54.         results.add(total);  
  55.         //创建XStream对象  
  56.         XStream xs = new XStream(new DomDriver());  
  57.         //为所有的类创建别名,别名为不包含包名的类名  
  58.         for (int i = 0; i < results.size(); i++) {  
  59.             Class clzz = results.get(i).getClass();  
  60.             //得到全限定类名  
  61.             String fullName = clzz.getName();  
  62.             //以"."分割字符串  
  63.             String [] temp = fullName.split("\\.");  
  64.             xs.alias(temp[temp.length-1], clzz);  
  65.         }  
  66.         String xmlString = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"+xs.toXML(results);  
  67.         return xmlString;  
  68.     }  
  69.       
  70.     /** 
  71.      * 将一个Object对象转化为xml格式输出 
  72.      * @param object 
  73.      * @return 
  74.      */  
  75.     public static String getXmlFromObject(Object object){  
  76.         XStream xs = new XStream(new DomDriver());  
  77.         Class clazz = object.getClass();  
  78.         String [] temp = clazz.getName().split("\\.");  
  79.         xs.alias(temp[temp.length-1], clazz);  
  80.         String xmlString = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"+xs.toXML(object);  
  81.         return xmlString;  
  82.     }  
  83.       
  84.     /** 
  85.      * 将对象转换为表单数据加载需要的格式 
  86.      * @param object 
  87.      * @return 
  88.      */  
  89.     public static String getLoadFormData(Object object){  
  90.           
  91.         return "";  
  92.     }  
  93.     public static void main(String[] args) {  
  94.         Menu menu = new Menu();  
  95.         menu.setName("name");  
  96.         menu.setParentid("123");  
  97.         Menu menu2 = new Menu();  
  98.         menu2.setName("name2");  
  99.         menu2.setParentid("1233");  
  100.         List inList = new ArrayList();  
  101.         inList.add(menu);  
  102.         inList.add(menu2);  
  103.         System.out.println(ExtUtil.getXmlFromList(inList.size(), inList));  
  104.     }  
  105. }  


2、Total.java
Java代码  收藏代码
  1. package com.hf.sfm.util;  
  2.   
  3. import java.util.List;  
  4.   
  5. /** 
  6.  * 将List转化为xml时getXmlFromList(),用来存放记录总数 
  7.  * @author Administrator 
  8.  * 
  9.  */  
  10. public class Total {  
  11.       
  12.     private long totalNum;//记录总数  
  13.     private List resultList;//要转换的List,也是转换后的结果集名称  
  14.   
  15.     public long getTotalNum() {  
  16.         return totalNum;  
  17.     }  
  18.   
  19.     public void setTotalNum(long totalNum) {  
  20.         this.totalNum = totalNum;  
  21.     }  
  22.   
  23.     public List getResultList() {  
  24.         return resultList;  
  25.     }  
  26.   
  27.     public void setResultList(List resultsList) {  
  28.         this.resultList = resultsList;  
  29.     }  
  30.       
  31. }  

 

分享到:
评论

相关推荐

    Json字符串转Java对象和List代码实例

    接下来,我们来看两个工具类,`JsonUtil` 和 `JsonListUtil`,它们分别处理JSON字符串与单个Java对象以及List的转换。 1. **JsonUtil**: 这个工具类包含两个方法,`getObject` 和 `getJson`。 - `getObject`: 将...

    Spring boot如何配置请求的入参和出参json数据格式

    例如,`DateEditor` 类继承自 `PropertyEditorSupport`,用于将JSON中的日期字符串转换为Java的日期对象。这个编辑器会检查输入的文本是否为null,如果设置为将null转换为空字符串,则会将其设置为空字符串,否则...

    struts+json+jquery练习小项目包括返回单个字符、对象、list、map

    在Action类中,你可以定义一个结果类型为"json"的返回值,然后将你需要转换为JSON的对象放入value栈,Struts2会自动处理这个对象并将其转换为JSON字符串。 例如,如果你要返回一个单个字符,你可以在Action类中定义...

    JAVA对象JSON数据互相转换的四种常见情况

    首先,通过JSONArray类的静态方法fromObject将Java对象列表转换为JSONArray对象,然后通过调用JSONArray对象的toString方法可以将JSON数组转换为字符串形式,以便于传输或存储。这种方法在Web应用中尤其有用,比如在...

    JsonPath使用类似XPATH的语法从JSON提取数据

    JsonPath是一种用于从JSON文档中提取数据的语言,其语法与XPath在XML文档中的操作非常相似。XPath是XML处理中常用的一种路径表达式语言,而JsonPath则是为JSON数据设计的查询语言。在Java开发中,处理JSON格式的数据...

    ActionScript 3开发手册

    - **XML对象和XMLList对象**:这些类提供了一种灵活的方式来处理和操作XML数据。 - **初始化XML变量**:如何创建XML对象并初始化它们。 - **组合和变换XML对象**:如何合并、拆分和修改XML数据。 - **遍历XML结构**...

    ActionScript 3.0 开发人员指南 (AS3开发帮助文档)

    使用`URLLoader`类可以从网络上加载XML文档,并将其转换为`XML`对象。 **在ActionScript中使用XML的示例:从Internet加载RSS数据** 本示例展示了如何使用`URLLoader`从互联网上下载RSS订阅源,并使用E4X来解析和...

    Struts2返回JSON对象[参考].pdf

    - **返回单个字符串**:通过`returnMsg`方法返回字符串"成功返回单个值"。 - **返回UserInfo对象**:通过`returnUser`方法返回一个包含用户名、密码等信息的`UserInfo`对象。 - **返回List对象**:通过`return...

    ActionScript 3.0 开发人员指南中文官网上下的

    - **XMLList对象**:`XMLList` 类用来处理XML文档中的节点列表。 - **初始化XML变量**:可以使用XML字面量或通过 `new XML()` 来初始化XML变量。 - **组合和变换XML对象**:通过E4X提供的操作符和方法可以方便地...

    struts2.1.8.1+jquery1.4.2返回json数据.pdf

    这里定义了三个方法,分别用于返回字符串、对象以及对象列表。 ##### 3. 配置文件设置 在Struts2中,配置文件(通常是`struts.xml`)用于定义Action的映射和结果处理方式。为了支持JSON输出,我们需要进行以下配置...

    Json转化为Java对象的实例详解

    当你需要将JSON字符串解析为一个List时,可以使用`JSONArray`类的`fromObject`方法将JSON字符串转化为`JSONArray`对象,然后通过`toCollection`方法将其转化为List: ```java String jsonString = "{\"list\":[{\...

    碎片及fastjson简单应用

    它能将Java对象转换为JSON字符串,也能将JSON内容转换为对应的Java对象。Fastjson的使用非常简单且高效,使得数据交换和序列化变得更加便捷。Fastjson的特性包括: 1. **快速**:Fastjson在性能上优于其他同类库,...

    Java的JSON转换库GSON的基本使用方法示例

    GSON是Google开发的一个用于Java语言的开源库,它提供了一种简单的方法将Java对象转换为JSON格式的字符串(序列化)以及将JSON格式字符串转换回Java对象(反序列化)。GSON库广泛用于网络数据交换格式的转换,例如与...

    struts2和json交互汇编.pdf

    // 返回单个字符串消息 public String returnMsg() { this.message = "成功返回单个值"; return SUCCESS; } // 返回单个UserInfo对象 public String returnUser() { userInfo = new UserInfo(); userInfo....

    Java笔试面试题解答

    字符串转化为输入流** ```java String str = "hello world"; InputStream is = new ByteArrayInputStream(str.getBytes()); ``` **9. 字符集编码及其特点** - **ASCII**: 7位编码,仅支持英文字符。 - **UTF-8**...

    Python2.7学习文档

    - 常见数据类型包括整型(int)、浮点型(float)、布尔型(bool)、字符串(str)、列表(list)、元组(tuple)、字典(dict)、集合(set)。 - 变量声明:Python中无需显式声明变量类型,通过赋值自动识别。 - **字符串和编码*...

    再谈Jquery Ajax方法传递到action(补充)

    但当使用`JSON.stringify()`方法将数据转换为JSON字符串后,应该将Content-Type设置为`application/json`。 #### 总结 通过上述内容,可以了解到在Jquery中使用Ajax方法向后端Action传递数据的多种方式和注意事项...

    C# 单文件存放多个序列化对象

    1. **XML序列化**:使用`XmlSerializer`类,你可以将对象转换为XML字符串或从XML字符串反序列化回对象。例如: ```csharp using System.IO; using System.Xml.Serialization; public class MyObject { public ...

    韩顺平servlet笔记

    模拟CMS,可以将List转换为JSON,这通常通过Servlet实现,Servlet将List转换成JSON字符串供前端使用。 2. **参数传递**: 如果参数过多,可以封装成一个对象传递,提高代码可读性和可维护性。例如,创建一个包含...

    xamarin.android listview控件通过web api获取并展示数据

    Xamarin提供了Json.NET库,可以方便地将JSON字符串转化为C#对象。假设返回的数据是JSON格式,且包含一个名为`Items`的数组,我们可以这样处理: ```csharp var jsonData = await GetDataFromApi(apiUrl); var items...

Global site tag (gtag.js) - Google Analytics