`
lhw0531
  • 浏览: 8791 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

提取对象属性值转换为json格式的数据

阅读更多
import java.lang.reflect.Field;
import java.util.Collection;
import java.util.Iterator;
/*
* 将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
*/
public class JsonUtil {
	
	/*
	** 暴露出来的方法,传入需要将属性值转换为json数据格式的pojo
	** 会抛出IllegalAccessException异常,需要捕捉
	*/
	public static String toJson(Object obj) throws IllegalAccessException{
		Class cla = obj.getClass();
		Field[] fields = cla.getDeclaredFields();
		String[] names = fieldToNames(fields);
		Object[] values = fieldToValues(fields,obj);
		String json = produceToJson(names,values);
		return json;
	}
	
	private static String[] fieldToNames(Field[] fields) {
		String[] names = new String[fields.length];
		for(int i = 0;i < fields.length;i++) {
			fields[i].setAccessible(true);//将此对象的 accessible 标志设置为可以读取
			names[i] = fields[i].getName();
		}
		return names;
	}
	
	private static Object[] fieldToValues(Field[] fields,Object obj) throws IllegalAccessException{
		Object[] values = new Object[fields.length];
		for(int i = 0;i < fields.length;i++) {
			values[i] = fields[i].get(obj);
		}
		
		return values;
	}
	
	private static String produceToJson(String[] names,Object[] values) {
		if(names.length != values.length) {
			new RuntimeException("转化json数据出错!!!");		
		}
		StringBuilder json = new StringBuilder();
		json.append("{");
		for(int i = 0;i < names.length;i++) {
			json.append("'");
			json.append(names[i]);
			json.append("':");
			processFieldValue(values[i],json);
			if(i < names.length - 1) {
				json.append(",");
			}
		}
		json.append("}");
		return json.toString();
	}
	
	private static void processFieldValue(Object obj,StringBuilder json) {
		if(obj instanceof Number) {
			json.append(obj);
		} else {
		json.append("'");
		json.append(obj);
		json.append("'");
		}
	}
	
	public static String allToJson(Collection coll) throws IllegalAccessException{
		Iterator iterator = coll.iterator();
		StringBuilder json = new StringBuilder();
		Object obj;
		while(iterator.hasNext()) {
			obj = iterator.next();
			json.append(toJson(obj));
			json.append(",");
		}
		int delete = json.lastIndexOf(",");
		json = json.deleteCharAt(delete);
		return json.toString();
	}
	
	
	/*
	**
	*/
}

 测试代码

import java.util.Collection;
import java.util.*;
public class TestJsonUtil {
	public static void main(String[] args) throws Exception{
		Pojo pojo1 = new Pojo("list",23);
		Pojo pojo = new Pojo("scriptguy",22);
		List<Object> lista = new ArrayList<Object>();
		lista.add(pojo1);
		lista.add(pojo);
		System.out.println(JsonUtil.allToJson(lista));
	}

}

 

结果:
      {'name':'list','age':23},{'name':'scriptguy','age':22}

分享到:
评论

相关推荐

    将xls转变为json格式工具

    单元格的值成为对象的属性,而列名则成为属性名。 4. **序列化到JSON**:使用Java的org.json库或其他类似库(如Gson或Jackson),将这些对象转换成JSON格式的字符串。 5. **写入txt文件**:最后,JSON字符串会被写入...

    对象转换成JSON和Map

    "对象转换成JSON和Map"是一个核心话题,特别是在Java编程语言中,因为JSON(JavaScript Object Notation)是网络通信中广泛使用的轻量级数据交换格式,而Map则是一种通用的数据结构,用于存储键值对。下面我们将深入...

    java的JsonObject对象提取值方法

    本篇将详细介绍如何在Java中使用`JsonObject`来提取JSON数据中的值,主要通过阿里巴巴的Fastjson库和Jackson库来演示。 首先,我们来看第一种格式的JSON数据: ```json [ { "success": true, "data": [ { ...

    C# 获取json字段中指定值

    在C#编程中,处理JSON数据是常见的任务,特别是在与Web服务交互或处理API响应时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,因其易读易写而被广泛采用。在这个场景中,我们将关注如何使用C#和...

    java处理JSON格式数据的通用类

    `JsonUtil`类封装了一系列方法来处理JSON数据与Java对象之间的转换。这些方法可以简化开发者在处理JSON数据时的工作量,并提高代码的可维护性和可读性。 #### 三、关键方法详解 ##### 3.1 `getObject4JsonString...

    XML数据生成Json格式代码

    在某些场景下,我们需要将XML数据转换为JSON格式,以便于JavaScript或其他支持JSON的语言处理。以下是对这个过程的详细解释。 XML是一种标记语言,用于描述数据结构和内容。它使用开始和结束标签(如`&lt;tag&gt;`和`...

    易语言正则取Json数据

    在本主题中,“正则取Json数据”是指使用正则表达式从Json格式的数据中提取所需信息。Json(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛应用于服务器与客户端之间的数据传输。 正则表达式...

    word表格转json

    本案例中的"word表格转json"是关于将Word文档中的表格数据转换为JSON(JavaScript Object Notation)格式,这是一种轻量级的数据交换格式,常用于Web服务和API之间的数据传递。而“实体类”在C#编程中指的是具有属性...

    树形结构文件转Json格式

    根节点对应JSON的最外层对象,子节点则成为该对象的属性,属性值可能是另一个JSON对象或数组,取决于子节点的结构。 3. **编码为JSON字符串**:将构建好的JSON对象转换为字符串,遵循JSON的语法规则。 4. **输出结果...

    json和bean转换

    在实际项目中,处理大量复杂JSON数据时,可能会遇到一些挑战,如处理嵌套结构、自定义转换规则、处理null值等。这时候,可能需要使用高级特性,如Gson的`@SerializedName`注解来指定字段映射,或使用Jackson的`@...

    【RPA之家转载视频教程3】RPA快速提示-使用JSON对象管理器包处理JSON.rar

    JSON数据通常包含键值对,其中键是字符串,值可以是各种数据类型,如字符串、数字、数组、布尔值或另一个JSON对象。这种灵活性使得JSON成为传递结构化信息的理想选择。 在RPA中,我们可能会遇到需要解析JSON响应、...

    json键/值取数据Demo

    在本文中,我们将深入探讨如何在C#中从XML文档中提取数据并将其转换为JSON格式,以实现“json键/值取数据Demo”。 首先,我们需要理解XML文档的结构。XML是一种用于标记数据的标记语言,其基本单位是元素,元素通过...

    IdHTTPServer+utf8转换+json解析

    在本项目中,接收到的UTF-8编码数据被解析为JSON格式,以便提取和操作其中的信息。Delphi的TJSONObject、TJSONArray等类提供了便利的方法来解析和构造JSON对象,例如,可以使用TryGetValue方法获取JSON对象的值,...

    如何获取object中的属性值

    在开发过程中,经常需要从复杂的对象结构中提取特定的属性值。本文将详细介绍两种常见的方法:通过`JavaScriptSerializer`和`JSON.NET`来获取对象中的属性值。 #### JavaScriptSerializer方式获取 ##### 原理介绍 ...

    Json2ExcleTool_json2excel_Json转换excle存储_

    将JSON数据转换为Excel格式,可以帮助用户更直观地查看和管理复杂的数据结构。 标题中的"Json2ExcleTool"是一个工具,其主要功能是将JSON数据转换为Excel格式,方便用户进行数据存储和处理。这个工具的特色在于它...

    Delphi中JSon_SuperObject_使用数据集与JSON对象互转

    在Delphi中,JSON数据通常被表示为一系列键值对,其中键是一个字符串,而值可以是任何类型的数据。为了与TDataSet建立联系,我们需要定义一个JSON结构,该结构包含字段信息以及数据本身。字段信息部分应该提供每个...

    html2json方案

    例如,HTML中的表格可以映射为JSON的数组,每个表格行成为一个对象,表格列的值则作为对象的属性。这种方式使得数据更容易被程序读取,从而实现自动化处理。 "html2json说明.docx"文档提供了关于如何进行这种转换的...

    SQL Server之JSON 函数详解

    总之,SQL Server的JSON功能提供了从JSON数据中提取信息、修改JSON内容以及将数据库查询结果转化为JSON的全面支持,极大地增强了SQL Server在现代Web应用程序中的适应性和灵活性。了解并熟练掌握这些函数,对于处理...

    易语言教学 - json模块解析/获取文本 示例源码

    使用yyJson,你可以通过调用`yyJson::解析JSON`来解析JSON文本,再通过`yyJson::获取值`等方法来获取JSON对象的属性值。yyJson模块通常提供了丰富的错误处理机制,使你在处理可能存在的错误时更加方便。 3. 精易...

Global site tag (gtag.js) - Google Analytics