`
小网客
  • 浏览: 1244408 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java中把json文件变成VO类的几种方式

    博客分类:
  • Java
 
阅读更多

json格式传输数据很爽,简单普及下json,从百科cp一句话如下:

 

 写道
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。

 

 也就是说大家用json做数据交换跟xml一样,本文基于json-lib版本为json-lib-2.4-jdk15.jar。目的是把一个json串转换成一个vo类。举例

{
    "id": "Elliotte",
    "name": "Harold"
}
把他转换成一个Student实例。查看代码提供方法如下:
public static Object toBean(JSONObject jsonObject)
public static Object toBean(JSONObject jsonObject, Class beanClass)
public static Object toBean(JSONObject jsonObject, Class beanClass, Map classMap)

public static Object toBean(JSONObject jsonObject, JsonConfig jsonConfig)
 使用方式如下:
public class Student {
	private String id;
	private String name;
	 
	public String getId() {
    	return id;
    }

	public void setId(String id) {
    	this.id = id;
    }

	public String getName() {
    	return name;
    }

	public void setName(String name) {
    	this.name = name;
    }

	@Override
    public String toString() {
	    return "Student [id=" + id + ", name=" + name + "]";
    }
}
 调用方式:
	public static void main(String[] args) {
		Map<String, Class<String>> classMap = new HashMap<String, Class<String>>();
		classMap.put("id", String.class);
		classMap.put("name", String.class);
		String content = "{ \"id\": \"Elliotte\", \"name\":\"Harold\" }";
		Student vo = new Student();
		try {
			vo = (Student) JSONObject.toBean(JSONObject.fromObject(content), Student.class);
			System.out.println("**Student:" + vo);
			vo = (Student) JSONObject.toBean(JSONObject.fromObject(content), Student.class,
			        classMap);
			System.out.println("**Student:" + vo);
			MorphDynaBean t = (MorphDynaBean) JSONObject.toBean(JSONObject.fromObject(content));
			System.out.println("**Student:" + t.get("id"));
			JsonConfig jc = new JsonConfig();
			jc.setRootClass(Student.class);
			vo = (Student) JSONObject.toBean(JSONObject.fromObject(content), jc);
			System.out.println("**Student:" + vo);
		} catch (Exception e) {
			e.printStackTrace();
		}

	}
 注意事宜:
1.vo类必须为public的否则跑属性缺失异常
 
0
2
分享到:
评论
2 楼 小网客 2012-12-10  
luoyu-ds 写道
JSONArray jsonArray = JSONArray.fromObject(data);//data为你的JSON字符串
Map<String, Class<Vo>> classMap = new HashMap<String, Class<Vo>>();
classMap.put("list", EnvMonitorVo.class);
List<Vo> result = JSONArray.toList(jsonArray,Vo.class, classMap);
比你的简单点不?

一样的,你这个是针对list的 我的是针对 all的
1 楼 luoyu-ds 2012-12-08  
JSONArray jsonArray = JSONArray.fromObject(data);//data为你的JSON字符串
Map<String, Class<Vo>> classMap = new HashMap<String, Class<Vo>>();
classMap.put("list", EnvMonitorVo.class);
List<Vo> result = JSONArray.toList(jsonArray,Vo.class, classMap);
比你的简单点不?

相关推荐

    根据vo生成yapi文档:YapiFileGenerattor.zip

    YapiFileGenerattor.java是这个项目的主要实现文件,它通常会包含一个Java类,该类负责解析VO(Value Object)类,从中提取方法、参数、返回类型等信息,并将这些信息转换为Yapi支持的JSON格式,以便导入到Yapi平台...

    Java毕业设计-花店-源代码

    在Java编程中,"花店"项目可能包括以下几个核心知识点: 1. **MVC设计模式**:Model-View-Controller(模型-视图-控制器)设计模式是Java Web开发中常用的一种架构模式。在这个项目中,模型层负责处理数据逻辑,视...

    浅谈springMVC接收前端json数据的总结

    对于JSON对象类型的数据,可以通过以下几种方式来接收: 1. 使用Map类型接收JSON数据 当前端传递JSON数据时,可以在后端方法的参数中声明一个Map类型的参数,并通过@RequestBody注解来标识该参数应绑定到请求体中...

    springMVC接收和返回参数各种情况整合

    ### Spring MVC 接收参数的各种方式详解 #### 一、Spring MVC 前台向后台传递参数的不同形式 ...以上就是关于Spring MVC中接收前端参数的几种常见方式及其应用场景的详细介绍。希望对大家的工作有所帮助!

    Springboot DTO字符字段与日期字段的转换问题.docx

    解决这个问题有几种方法: 1. **使用`@JsonFormat`注解**: 可以在`birthday`字段上添加`@JsonFormat`注解,指定日期格式和时区,如: ```java @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") ...

    Struts、Spring、Hibernate&Ajax;学习笔记总结

    为了更好地理解和应用 Struts,我们还需要了解几种常见的数据对象及其用途: - **POJO (Plain Old Java Object)**:简单的 Java 对象,具有 getter 和 setter 方法。它是其他数据对象的基础。 - **PO (Persistent ...

    jsp +mysql+分页

    标题中的"jsp +mysql+分页"涉及到的是Web开发中的几个关键概念,主要集中在Java服务器页面(JSP)、MySQL数据库以及分页技术的应用。这里我们将深入探讨这些知识点。 首先,JSP(JavaServer Pages)是一种动态网页...

    strute+hibernate写的一个分页

    5. **封装并返回响应**:Struts2的Action类会将处理后的数据封装成一个VO(Value Object)或者DTO(Data Transfer Object),然后通过Result转发到相应的JSP页面或者JSON响应。 6. **前端展示**:在JSP页面上,利用...

    spring bootMVC+maven+mybatis

    - `@RestController`注解用于标记控制器类,表示返回JSON数据的端点。 - `@RequestMapping`用于映射HTTP请求,而`@GetMapping`、`@PostMapping`等用于更具体的HTTP方法映射。 - 使用`ModelAndView`或`Model`对象...

    ajax自动补全模糊查询

    而VO(Value Object)类是用来映射数据库表中的字段,创建对应的Java对象或者POJO(Plain Old Java Object),方便前后端数据的转换。 为了实现这个功能,你还需要关注以下几点: 1. **安全考虑**:确保从客户端...

Global site tag (gtag.js) - Google Analytics