JSON格式的数据传递是最常用的方法之一,以下列出了常用的几种形态以及与Javabean之间的转换:
String json1="{'name':'zhangsan','age':23,'interests':[{'interest':'篮球','colors':['绿色','黄色']},{'interest':'足球','colors':['红色','蓝色']}]}";
String json2="[{'name':'zhangsan'},{'name':'lisi'},{'name':'王五'}]";
String json3="{'1':{'name':'zhangsan'},'3':{'name':'lisi'},'4':{'name':'wangwu'}}";//map
String json4="{'name':'zhangsan','age':23}";
首先,此处的转化依赖两个JAR包
1 <!-- (官网:www.fhadmin.org) https://mvnrepository.com/artifact/com.google.code.gson/gson --> 2 <dependency> 3 <groupId>com.google.code.gson</groupId> 4 <artifactId>gson</artifactId> 5 <version>2.8.1</version> 6 </dependency> 7 <!-- https://mvnrepository.com/artifact/org.json/json --> 8 <dependency> 9 <groupId>org.json</groupId> 10 <artifactId>json</artifactId> 11 <version>20170516</version> 12 </dependency>
其次,封装的Javabean代码如下(官网:www.fhadmin.org)
1 import java.util.List; 2 3 public class UserBean { 4 5 private String name; 6 7 private Integer age; 8 9 private List<InterestBean> interests; 10 11 public String getName() { 12 return name; 13 } 14 15 public void setName(String name) { 16 this.name = name; 17 } 18 19 public Integer getAge() { 20 return age; 21 } 22 23 public void setAge(Integer age) { 24 this.age = age; 25 } 26 27 28 29 30 public List<InterestBean> getInterests() { 31 return interests; 32 } 33 34 public void setInterests(List<InterestBean> interests) { 35 this.interests = interests; 36 } 37 38 39 40 41 class InterestBean{ 42 private String interest; 43 44 private List<String> colors; 45 46 public String getInterest() { 47 return interest; 48 } 49 50 public void setInterest(String interest) { 51 this.interest = interest; 52 } 53 54 public List<String> getColors() { 55 return colors; 56 } 57 58 public void setColors(List<String> colors) { 59 this.colors = colors; 60 } 61 62 63 } 64 65 }
1、普通的json4格式的JSON解析(官网:www.fhadmin.org):
1 public void testParseJson(){ 2 3 JSONObject jsonObj = new JSONObject(json4); 4 String name = jsonObj.getString("name"); 5 int age = jsonObj.getInt("age"); 6 System.out.println(name); 7 System.out.println(age); 8 UserBean user = new UserBean(); 9 user.setAge(age); 10 user.setName(name); 11 12 }
2、数组形式的JSON解析以及GSON解析:
1 public void testJsonArray(){ 2 JSONArray jsonArray = new JSONArray(json2); 3 for (int i = 0; i < jsonArray.length(); i++) { 4 JSONObject jsonObj = jsonArray.getJSONObject(i); 5 String name = jsonObj.getString("name"); 6 System.out.println(name); 7 8 } 9 }
1 /** 2 * 解析json数组(官网:www.fhadmin.org) 3 */ 4 public void testParseListJson(){ 5 Gson gson = new Gson(); 6 Type type = new TypeToken<List<UserBean>>(){}.getType(); 7 List<UserBean> users = gson.fromJson(json2, type); 8 for(UserBean user:users){ 9 System.out.println(user.getName()); 10 } 11 }
3、内嵌JSON形式的JSON与GSON解析:
1 /** 2 * 内嵌JSON解析 3 */ 4 public void testParseJson1(){ 5 JSONObject rootJson = new JSONObject(json1); 6 JSONArray jsonInterestArray = rootJson.getJSONArray("interests"); 7 for (int i = 0; i < jsonInterestArray.length(); i++) { 8 JSONObject interestJsonObj = jsonInterestArray.getJSONObject(i); 9 String interest = interestJsonObj.getString("interest"); 10 System.out.println(interest); 11 Object obj = interestJsonObj.get("colors"); 12 System.out.println(obj); 13 } 14 }
1 /** 2 * 内嵌GSON解析(官网:www.fhadmin.org) 3 */ 4 public void testSimpleJson(){ 5 Gson gson = new Gson(); 6 UserBean user = gson.fromJson(json1, UserBean.class); 7 System.out.println(user.getName()); 8 System.out.println(user.getAge()); 9 System.out.println(user.getInterests().size()); 10 List<InterestBean> list = user.getInterests(); 11 for(InterestBean bean:list) { 12 System.out.println(bean.getInterest()); 13 List<String> colors = bean.getColors(); 14 for(String color:colors){ 15 System.out.println(color); 16 } 17 } 18 }
4、Map形式的JSON的GSON解析:
1 /** 2 * 解析一个map类型的json 3 */ 4 public void testParseMapJson(){ 5 Gson gson = new Gson(); 6 Type type = new TypeToken<Map<String,UserBean>>(){}.getType(); 7 Map<String,UserBean> map = gson.fromJson(json3, type); 8 Set<String> keys = map.keySet(); 9 for(String key:keys){ 10 UserBean bean = map.get(key); 11 System.out.println(key); 12 System.out.println(bean.getName()); 13 } 14 }
5、将一个JavaBean对象封装成JSON格式
1 /** 2 * 将一个JavaBean对象封装成JSON格式 3 */ 4 public String testJavaBean2Json(){ 5 UserBean userBean = new UserBean(); 6 userBean.setName("zhangsan"); 7 userBean.setAge(33); 8 List<InterestBean> list = new ArrayList<InterestBean>(); 9 InterestBean bean1 = new UserBean().new InterestBean(); 10 bean1.setInterest("篮球1"); 11 InterestBean bean2 = new UserBean().new InterestBean(); 12 bean2.setInterest("篮球2"); 13 list.add(bean1); 14 list.add(bean2); 15 userBean.setInterests(list); 16 //将User Bean转换成Json 17 Gson gson = new Gson(); 18 String jsonStr = gson.toJson(userBean); 19 System.out.println(jsonStr); 20 return jsonStr; 21 } 22 23 }
仅供参考,如有雷同,纯属巧合^_^
相关推荐
以下为文章中提到的几种JSON数据格式与Javabean之间的转换方法: 1. 普通JSON对象转换成Javabean: 针对普通的JSON对象(如json4所示),可以使用org.json库中的JSONObject类进行解析。首先,创建一个JSONObject...
这篇博客主要探讨了几种用于这些格式互转的工具,下面将详细介绍这些工具及其使用方法。 1. **Gson** (Google的JSON库) Gson是由Google提供的一个开源库,它可以将Java对象转换为JSON字符串,反之亦然。使用Gson,...
它提供了一种简单的方式来读取和设置JavaBean的属性,这对于将JavaBean转换为JSON对象至关重要。 4. `json-lib-2.3-jdk15.jar`:这是主要的JSON处理库,支持多种数据类型(包括JavaBean)与JSON之间的转换。`json-...
下面将介绍几种常见的转换方式,并展示示例代码。 一、Java对象与JSON字符串的互转 首先,Java对象与JSON字符串之间的转换主要通过一些常用的库来实现,比如org.json库、Google的Gson库、Apache的Jackson库等。...
例如,当我们要将一个JavaBean转换为JSON时,`commons-beanutils`可以帮助我们轻松地访问和操作JavaBean的属性,然后`json-lib`则负责实际的JSON编码工作。反过来,当我们从JSON解析数据时,`json-lib`会将JSON对象...
JSON-lib通过以下几种方式实现了这一功能: 1. **JavaBeans到JSON**:你可以通过`net.sf.json.JSONObject.fromObject(JavaBean)`方法将JavaBean实例转换为JSON对象。这个过程会遍历JavaBean的所有属性,并将它们...
使用JavaBean主要有以下几种方式: - **属性赋值和获取**:通过调用setter和getter方法设置和获取属性值。 - **XML配置**:在Spring等框架中,JavaBean可以通过XML配置文件进行依赖注入。 - **注解配置**:在...
JSON是一种基于文本的数据格式,它以键值对的形式存储数据,类似于JavaScript的对象。由于其简单性和高效性,JSON已经成为Web服务中数据交换的标准格式。在JavaScript中,JSON数据可以直接转换为对象,而在Java中,...
在JSON与Java对象相互转换时,BeanUtils可以协助完成JavaBean到JSON的映射。 5. `ezmorph-1.0.3.jar`:EZMorph库提供了动态对象转换功能,使得将一种数据类型转换为另一种数据类型变得简单。在处理JSON时,可能会...
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在Java中,解析JSON通常涉及到将JSON字符串转换成Java对象,以便于程序能够更方便地操作这些数据。 ...
`json-lib`是Java中一个流行的JSON库,它提供了多种Java类型到JSON对象的转换,包括基本类型、集合、Map、JavaBean等。`json-lib-2.2.3.jar`是该库的一个版本,它包含了所有必要的类和方法,使得开发者能够方便地...
- **commons-beanutils-1.7.0.jar**: Apache Commons BeanUtils库简化了JavaBeans属性的访问,可以方便地将JavaBean转换为JSON对象,或者从JSON数据创建JavaBean实例。 - **ezmorph-1.0.3.jar**: EzMorph库提供...
4. **commons-beanutils-1.9.3.jar**:Apache Commons BeanUtils库简化了JavaBean属性的访问和操作,`json-lib`可能利用这个库来处理JavaBean与JSON之间的转换。 5. **ezmorph-1.0.4.jar**:EZMorph是一个Java库,...
Fastjson支持Java对象与JSON之间的相互转换,包括JSON字符串到Java对象的反序列化以及Java对象到JSON字符串的序列化。它还提供了解析JSON和生成JSON的功能,可以方便地进行JSON操作,例如: 1. 将Java对象转换为...
这个压缩包可能包含了以下几种关键的JSON处理库: 1. `commons-beanutils.jar`: Apache Commons BeanUtils是Apache组织提供的一个Java工具包,用于简化JavaBean操作。在处理JSON时,它可以帮助将Java对象转换为JSON...
Java与JSON之间的互操作是指通过特定的库,如JSON-lib,使得Java程序能够方便地将Java对象转换为JSON格式,或者将JSON格式的数据转换回Java对象。 JSON-lib是一个Java库,它提供了丰富的API来处理JSON数据。使用...
3. `commons-beanutils`:简化JavaBean与JSON之间的映射。 4. `json-lib`:核心JSON处理库,实现JSON的序列化和反序列化。 5. `ezmorph`:对象转换工具,用于不同类型的转换,包括JSON到Java和Java到JSON。 6. `...
总结来说,Java与JSON的转换是一种常见且重要的数据处理技术,它让Java后端与前端的JavaScript进行高效的数据交互变得可能。掌握JSON数据结构以及熟练使用各种Java库进行JSON数据的序列化和反序列化是每个Java开发者...
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它采用完全独立于语言的文本格式,同时也易于人阅读和编写,同时也易于机器解析和生成。在Java开发中,`json.libjar`包通常指的是`json-lib`库,这...
`net.sf.ezmorph`是另一个与`json-lib`关联的库,它提供了一种动态类型转换机制。EZ Morph库主要用于对象的变形(Morphing),在将Java对象转换为JSON时,可能会遇到各种数据类型的转换问题,`ezmorph`库能够帮助...