`
wayousm
  • 浏览: 1747 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

JSON转成JAVA对象

阅读更多
{'username':'xxx','password':'xxx','serviceType':'xxx','paramsObj':{'userName':'xxx','userPwd':'xxx'}}
形如这样的JSON很好解析。
一个这样的方法就可以解析了。
public static Object getJTO(String jsonString, Class clazz, Map map) {
		JSONObject jsonObject = null;
		try {
			jsonObject = JSONObject.fromObject(jsonString.trim());
		} catch (Exception e) {
			e.printStackTrace();
		}
		return JSONObject.toBean(jsonObject, clazz, map);
	}

其中map表示:
集合属性的类型 (key : 集合属性名, value : 集合属性类型class)
         example:("paramsObj" : Bean.class)
其中class表示:整个JSON的对象。
但是如果遇到这样的JSON就不好解析了,问题待解决中,解决后跟踪,也请大家给予经验分享。
{'username':'xxx','password':'xx','serviceType':'xxx','paramsObj':{"passList":[{"passName":"xx","idType":"xx","idNo":"xxx","savePassenger":true}],"contactName":"xxx","contactMobilePhone":"xxx","contactEmail":"xxx","sendMethod":false}}

难点在于passList是一个list,而且list里放的是对象,如果用上面的解析方法会报
net.sf.ezmorph.bean.MorphDynaBean incompatible with XX异常。

当然好似可以用另外的方法例如:JSONObject.getJSONArray()。但要把JSON直接转化成一个JAVA类不知道有没有更好的方法。第一个Bean放最外层,第一个Bean包含第二个bean-paramsObj,第二个bean中放了一个list包括第三个bean属性有passName等等,这样延伸到第N个bean。
报异常是因为没有把list里放的类型指定给反射器。所以必须要指定map.put("A",A.class);而一般的嵌套对象可以不用指定。
问题解决。
最后代码如下:
//解析Json方法
public static Object getJTO(String jsonString, Class clazz, Map map) {
		JSONObject jsonObject = null;
		try {
			jsonObject = JSONObject.fromObject(jsonString.trim());
		} catch (Exception e) {
			e.printStackTrace();
		}
		return JSONObject.toBean(jsonObject, clazz, map);
	}
//调用解析Json前工作
map.put("passList", XX.class);
MobileRequest mobileRequest = (MobileRequest) JsonUtil.getJTO(
	jsonString, XX.class, map);


分享到:
评论

相关推荐

    java对象转JSON

    1.一款将java对象转成json或是将json转成java对象的jar文件; 2.在网上找了半天才找到,希望大家共享; 3.使用方法,大家在网上随便找,很多,很简单,一看便会; 4.此包在eclipse中和AndroidStudio中都可以用,但是,你如果...

    JSON转换为JAVA对象及日期格式转换处理 -

    JSON转换为JAVA对象及日期格式转换处理 -

    json格式与java类对象相互转换

    1. 将Java对象转换为JSON字符串,同样使用`ObjectMapper`: ```java User john = new User(1, "John", "john@example.com"); String johnJson = mapper.writeValueAsString(john); ``` 2. 对于集合类型,如List或...

    Json与java对象之间相互转换源码

    在Java中,我们经常需要将JSON字符串与Java对象进行相互转换,以便于数据的传输和处理。本篇文章将详细探讨这个过程,以及如何使用常见的Java JSON库,如Gson和Jackson,进行JSON与Java对象的转换。 首先,让我们...

    json转对象数组与对象数组转json --Java

    在Java编程语言中,处理JSON数据时经常需要进行JSON字符串与Java对象之间的转换。特别是在涉及到数组或集合的场景下,这种转换显得尤为重要。本文将详细介绍如何使用Java实现JSON字符串与对象数组之间的相互转换。 ...

    json转对象(java 多级嵌套)

    5. **反向操作:Java对象转JSON** 除了将JSON转换为Java对象,我们还可以使用`ObjectMapper`将Java对象转换回JSON字符串,这对于前端展示或存储数据非常有用: ```java String json = mapper.writeValueAsString...

    多层集合嵌套的JSON数据转化为Java对象(src.zip)

    Java作为一种常用的后端开发语言,需要处理这些JSON数据,将其转化为Java对象以便于操作。本主题主要关注如何使用`net.sf.json.JSONObject`这个库将多层集合嵌套的JSON数据转换为Java对象。 `...

    利用java反射将json字符串转成对象.zip

    在给定的“利用java反射将json字符串转成对象”的主题中,我们将深入探讨如何借助反射机制将JSON字符串转换为Java对象。 首先,我们需要了解JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人...

    使用json-lib将java对象转换成json字符串

    标题中的“使用json-lib将java对象转换成json字符串”指的是在Java编程中,利用json-lib这个库来将Java对象转化为JSON格式的字符串。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于前后端...

    JAVA-JSON工具转换类

    在处理JSON时,可能需要将JSON解析得到的数据转换成特定的对象类型,或者将Java对象转换成适合JSON格式的数据,这时候`ezmorph`就可以派上用场。它可以方便地将一种类型的数据转换成另一种类型,比如将字符串转成...

    JSON 转化为java对象

    #### 三、技术实现:JSON 转 Java 对象的方法 **1. 使用第三方库** 市场上有许多成熟的第三方库可以帮助开发者轻松实现 JSON 与 Java 对象之间的转换,如 Jackson、Gson 和 Fastjson 等。 **2. 自定义转换器** ...

    使用json-lib实现json与Java对象的互转

    要使用 `json-lib` 实现 JSON 与 Java 对象的互转,首先需要在项目中引入该库。如果你使用的是 Maven,可以在 `pom.xml` 文件中添加如下依赖: ```xml <groupId>net.sf.json-lib</groupId> <artifactId>json-lib...

    json与java对象互转

    ### JSON与Java对象互转:深入理解与实践 在现代软件开发中,JSON(JavaScript Object Notation)作为数据交换的标准格式之一,其轻量级、易于读写的特点使其成为跨平台数据传输的首选。Java作为一种广泛使用的编程...

    复杂json格式转为对象

    处理复杂的JSON格式并将其转换为Java对象是一项常见的任务,这涉及到JSON库的使用,例如Jackson、Gson或Fastjson等。本资源提供了一个关于如何将复杂JSON转换为Java对象的学习实例,包括源码和可执行的jar包。 一、...

    JSON与JAVA对象之间的转换

    在Java开发中,我们经常需要将JSON字符串与Java对象之间进行转换,以便在服务器端处理来自客户端的数据,或者将数据以JSON格式发送回客户端。这里我们将重点讨论两种常用的库:Gson和Jackson,它们都提供了方便的...

    java-对象数组转换为json

    首先,我们来看如何将一个Java对象数组转换成JSON格式。这通常涉及到使用第三方库如`fastjson`、`Jackson`或`org.json`等。这里以`org.json`为例进行说明: ```java import org.json.JSONArray; PricingRangeDTO[]...

    用于java对象与json对象间的相互转换(net.sf.json.JSONObject)

    是开源库Apache Commons的一个组件,提供了Java对象与JSON对象之间的转换功能。下面将详细阐述如何使用`JSONObject`进行JSON操作。 ### 1. 解析JSON字符串 当你从服务器获取或从文件读取到一个JSON字符串时,可以...

    json 字符串转java对象,java对象转json字符串

    自己有空时用java反射写的json转化工具,有不完善之处,多包涵

    Java对象、数组、集合转换为Json(Json转化为Java对象、数组、集合)

    这是本人写的一个基于JSON的完整项目,实现了Java对象、数组、集合转换为Json(Json转化为Java对象、数组、集合)。这是一个完整的项目,下载解压后直接导入MyEclipse/Eclipse中,运行com.demo.JSONDemo类即可看到效果...

    java对象映射器(基于jackson将Java对象转为json,或者将json转为Java对象)

    用来干啥? 答:将JSON解析为Java对象的过程称为 [从JSON反序列化Java对象] ...这就需要传到后端时通过json转成string,然后在进行解析json拿到id。 不光是这一个场景,就像有些时间的格式到后端变成能接受的值等。

Global site tag (gtag.js) - Google Analytics