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

简单Json字符串生成器

阅读更多

关于JSON的Java类库挺多的,但有时候不希望在项目里边引入这些JAR包,所以需要自己实现一些简单的工具类。本例就属于这种情况。本例中使用Java的反射机制,将简单的POJO对象转换成JSON字符串。

 

/**
* 将字符串首字母大写
* @param str
 * @return
 */
private static String transform(String str) {
	if (str == null || str.length() < 1) {
		return "";
	}
	return str.substring(0, 1).toUpperCase() + str.substring(1);
}

/**
 * 将POJO对象转换成JSON格式的字符串
 * @param obj
* @return
 */
public static String pojo2Json(Object obj) {
	if (obj == null) {
		return "";
	}
	Class clazz = obj.getClass();
	Field[] fields = clazz.getDeclaredFields();
	StringBuilder buff = new StringBuilder();
	buff.append("{");
	for (Field f : fields) {
		try {
			String methodName = "get" + transform(f.getName());
			Object value=clazz.getDeclaredMethod(methodName).invoke(obj, null);
			buff.append("\"");
			buff.append(f.getName());
			buff.append("\":");
			if(value==null){
				buff.append("\"\",");
				continue;
			}
			if(value instanceof Boolean){
				buff.append((Boolean)value);
				buff.append(",");
			}else if(value instanceof Number){
				buff.append((Number)value);
				buff.append(",");
			}else if(value instanceof Date){
				buff.append("\"");
				buff.append(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format((Date)value));
				buff.append("\",");
			}else{
				buff.append("\"");
				buff.append(value.toString());
				buff.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();
		}
			
	}
	if (buff.length() > 1) {
		buff = buff.deleteCharAt(buff.length() - 1);
	}
	buff.append("}");
	return buff.toString();
}
分享到:
评论

相关推荐

    模仿json,根据对象生成json字符串,根据字符串生成对象

    本文将深入探讨如何模仿JSON,根据对象生成JSON字符串,以及如何根据JSON字符串反向生成对象。 首先,我们要理解JSON的基本结构。一个JSON对象以大括号`{}`包围,其内部由键值对组成,键用双引号`""`包裹,值可以是...

    C++解析json字符串

    C++作为一款强大的系统编程语言,虽然原生并不支持JSON解析,但有多种库可以用来处理JSON字符串。本主题将深入探讨如何在C++中解析JSON字符串,主要涉及以下几个知识点: 1. **JSON基本结构**:JSON数据由键值对...

    json字符串转换c++类对象

    本篇文章将深入探讨如何将JSON字符串转换为C++类对象,以实现数据的有效操作和管理。 首先,我们需要一个库来解析JSON字符串。在C++中,有许多流行的JSON库可供选择,例如nlohmann/json、jsoncpp、RapidJSON等。...

    C实现的 json格式字符串与结构体转化

    要将JSON字符串转化为结构体,首先需要对JSON字符串进行解析,获取其中的键值对。`cjson`库提供了` cJSON_Parse()`函数,用于解析JSON字符串并返回一个`cJSON`对象。这个对象代表了JSON数据的树形结构,可以通过遍历...

    c++读取解析Json字符串内容

    本篇文章将深入探讨如何在C++中读取并解析JSON字符串内容。 首先,你需要一个C++库来帮助解析JSON。虽然C++标准库并不直接支持JSON,但有许多第三方库可供选择,如 RapidJSON、nlohmann/json 和 Jsoncpp。这里我们...

    C语言实现的 json格式字符串与结构体自动相互转化

    反之,将结构体转化为JSON字符串则是将结构体中的数据转换为JSON格式的文本,便于在网络间传递或存储。 关于“反射”这一概念,在许多面向对象的语言中,反射允许程序在运行时检查和修改其自身的结构和行为。在...

    Json字符串格式化工具

    这类工具可以帮助开发者将原始的、紧凑的JSON字符串转换成可读性更强的格式,通过增加缩进和换行来清晰地展示数据结构,便于理解和调试。 描述中提到的“Json字符串格式化工具”同样强调了这一点。在实际开发中,...

    JSON字符串校验

    1. **解析阶段**:将JSON字符串转换为抽象语法树(AST),如果字符串中包含非法字符、键值对格式不正确、缺少逗号或冒号、括号不匹配等问题,解析器会在这一步捕获错误。 2. **验证阶段**:检查生成的AST是否符合...

    解析unicode的json字符串的cJSON,支持宽字符串

    它提供了一个简单易用的API,可以方便地将JSON字符串转化为C结构体,以及将C结构体转化为JSON字符串。然而,原生的CJSON并不直接支持Unicode,尤其是宽字符的处理,这在处理包含多语言字符的JSON数据时可能会遇到...

    C#通过post提交json字符串

    ### C#通过POST提交JSON字符串知识点详解 #### 一、知识点概述 在现代Web开发中,前后端分离架构越来越流行,后端主要负责处理业务逻辑和数据存储,前端则负责展示逻辑。在这种模式下,前后端之间的数据交换通常...

    Newtonsoft.Json C# MVC中json对象json字符串处理2.0版3.5版4.0版4.5版(历史版本全)

    在.NET框架中,尤其是在MVC(Model-View-Controller)架构中,它是一个不可或缺的工具,用于序列化和反序列化JSON对象,将C#对象转换为JSON字符串,以及将JSON字符串解析回C#对象。 在C# MVC项目中,JSON处理通常...

    C# JSON 字符串

    通过示例代码,我们学习了如何解析JSON字符串、提取简单的键值对以及访问嵌套对象中的数据。掌握这些技能对于处理Web服务返回的数据或其他涉及JSON格式的应用场景非常重要。希望本文能够帮助您更好地理解和运用C#中...

    使用json-lib自定义复杂类型转换为Json字符串

    这样,当`Address`对象在转换过程中遇到时,会使用我们自定义的转换函数,生成符合需求的JSON字符串。 测试这部分功能,你可以编写一个`TestJsonLib`测试类,包含一个测试方法,模拟上述代码的执行流程,确保自定义...

    JsonC#生成器

    该生成器的目标是简化开发人员的工作,自动将C#对象转换为Json字符串,或者将Json文本反序列化为C#对象。这在构建API接口、Web应用或任何需要传递结构化数据的项目时尤其有用。 JsonC#生成器的核心功能可能包括以下...

    json实体类生成器

    JSON实体类生成器的工作就是根据JSON字符串或JSON文件,自动生成与之匹配的实体类代码。这些实体类可以直接在代码中使用,简化了从JSON数据到程序对象的转换过程。 3. 关键组件: - `JsonToEntity.exe.config`:这...

    java 对象与json字符串互相转换工具类

    在Java开发中,数据交换和存储经常涉及到对象与JSON字符串之间的转换。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。Java提供了多种库来实现对象与...

    cpp-cJSON解析库的使用示例包含简单和复杂JSON字符串的解析和构建

    cJSON是一个小巧高效的JSON解析器,它提供了解析JSON字符串、生成JSON格式数据的功能。本文将详细介绍如何利用cJSON库进行简单和复杂JSON字符串的解析和构建。 首先,你需要在项目中引入cJSON库。如果你是从源码...

    Json字符串和Json对象的相互转换以及Json的访问

    这将生成`"{ "name": "John", "age": 30, "city": "New York" }"`这样的JSON字符串。 2. `JSON.parse()`: 相反,这个方法用于将JSON字符串解析为JavaScript对象。例如: ```javascript let jsonString = '{"name":...

    Json字符串查看和编辑工具.rar

    3. JsonView.exe:这是JSON查看器的可执行文件,用户可以直接运行此程序来查看和编辑JSON字符串。通过这个工具,用户可以方便地查看JSON数据,检查其格式是否正确,也可以进行简单的编辑操作,如添加、删除或修改...

    解析unicode的json字符串的最新版cJSON

    `cJSON`是一个C语言实现的轻量级JSON解析器和生成器,它允许程序高效地解析JSON数据并创建相应的C结构体表示,同时也可以将这些结构体转换回JSON字符串。`cJSON`库小巧、易于集成,并且具有良好的跨平台性。 在处理...

Global site tag (gtag.js) - Google Analytics