`
qingyu11068
  • 浏览: 67715 次
文章分类
社区版块
存档分类
最新评论

JSON与Javabean转换的几种形式

阅读更多

 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转换的几种形式

    以下为文章中提到的几种JSON数据格式与Javabean之间的转换方法: 1. 普通JSON对象转换成Javabean: 针对普通的JSON对象(如json4所示),可以使用org.json库中的JSONObject类进行解析。首先,创建一个JSONObject...

    json、javaBean、xml互转的几种工具介绍

    这篇博客主要探讨了几种用于这些格式互转的工具,下面将详细介绍这些工具及其使用方法。 1. **Gson** (Google的JSON库) Gson是由Google提供的一个开源库,它可以将Java对象转换为JSON字符串,反之亦然。使用Gson,...

    javabean和json互转所需的6个包

    它提供了一种简单的方式来读取和设置JavaBean的属性,这对于将JavaBean转换为JSON对象至关重要。 4. `json-lib-2.3-jdk15.jar`:这是主要的JSON处理库,支持多种数据类型(包括JavaBean)与JSON之间的转换。`json-...

    Java中json与javaBean几种互转的讲解

    下面将介绍几种常见的转换方式,并展示示例代码。 一、Java对象与JSON字符串的互转 首先,Java对象与JSON字符串之间的转换主要通过一些常用的库来实现,比如org.json库、Google的Gson库、Apache的Jackson库等。...

    json包括依靠包

    例如,当我们要将一个JavaBean转换为JSON时,`commons-beanutils`可以帮助我们轻松地访问和操作JavaBean的属性,然后`json-lib`则负责实际的JSON编码工作。反过来,当我们从JSON解析数据时,`json-lib`会将JSON对象...

    JSON-lib

    JSON-lib通过以下几种方式实现了这一功能: 1. **JavaBeans到JSON**:你可以通过`net.sf.json.JSONObject.fromObject(JavaBean)`方法将JavaBean实例转换为JSON对象。这个过程会遍历JavaBean的所有属性,并将它们...

    javabean源码

    使用JavaBean主要有以下几种方式: - **属性赋值和获取**:通过调用setter和getter方法设置和获取属性值。 - **XML配置**:在Spring等框架中,JavaBean可以通过XML配置文件进行依赖注入。 - **注解配置**:在...

    JSONjar包下载

    JSON是一种基于文本的数据格式,它以键值对的形式存储数据,类似于JavaScript的对象。由于其简单性和高效性,JSON已经成为Web服务中数据交换的标准格式。在JavaScript中,JSON数据可以直接转换为对象,而在Java中,...

    json包

    在JSON与Java对象相互转换时,BeanUtils可以协助完成JavaBean到JSON的映射。 5. `ezmorph-1.0.3.jar`:EZMorph库提供了动态对象转换功能,使得将一种数据类型转换为另一种数据类型变得简单。在处理JSON时,可能会...

    JAVA解析JSON相关.docx

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在Java中,解析JSON通常涉及到将JSON字符串转换成Java对象,以便于程序能够更方便地操作这些数据。 ...

    json-lib及json-taglib包

    `json-lib`是Java中一个流行的JSON库,它提供了多种Java类型到JSON对象的转换,包括基本类型、集合、Map、JavaBean等。`json-lib-2.2.3.jar`是该库的一个版本,它包含了所有必要的类和方法,使得开发者能够方便地...

    json.zip文件

    - **commons-beanutils-1.7.0.jar**: Apache Commons BeanUtils库简化了JavaBeans属性的访问,可以方便地将JavaBean转换为JSON对象,或者从JSON数据创建JavaBean实例。 - **ezmorph-1.0.3.jar**: EzMorph库提供...

    net.sf.json.JSONObject需要引用几个JAR包

    4. **commons-beanutils-1.9.3.jar**:Apache Commons BeanUtils库简化了JavaBean属性的访问和操作,`json-lib`可能利用这个库来处理JavaBean与JSON之间的转换。 5. **ezmorph-1.0.4.jar**:EZMorph是一个Java库,...

    com.alibaba.fastjson.JSON , net.sf.json.JSONObject

    Fastjson支持Java对象与JSON之间的相互转换,包括JSON字符串到Java对象的反序列化以及Java对象到JSON字符串的序列化。它还提供了解析JSON和生成JSON的功能,可以方便地进行JSON操作,例如: 1. 将Java对象转换为...

    json数据相关jar包

    这个压缩包可能包含了以下几种关键的JSON处理库: 1. `commons-beanutils.jar`: Apache Commons BeanUtils是Apache组织提供的一个Java工具包,用于简化JavaBean操作。在处理JSON时,它可以帮助将Java对象转换为JSON...

    java与json之间的互操作[参照].pdf

    Java与JSON之间的互操作是指通过特定的库,如JSON-lib,使得Java程序能够方便地将Java对象转换为JSON格式,或者将JSON格式的数据转换回Java对象。 JSON-lib是一个Java库,它提供了丰富的API来处理JSON数据。使用...

    Java中 json处理的所用到的所有Jar包

    3. `commons-beanutils`:简化JavaBean与JSON之间的映射。 4. `json-lib`:核心JSON处理库,实现JSON的序列化和反序列化。 5. `ezmorph`:对象转换工具,用于不同类型的转换,包括JSON到Java和Java到JSON。 6. `...

    java与JSON数据的转换实例详解

    总结来说,Java与JSON的转换是一种常见且重要的数据处理技术,它让Java后端与前端的JavaScript进行高效的数据交互变得可能。掌握JSON数据结构以及熟练使用各种Java库进行JSON数据的序列化和反序列化是每个Java开发者...

    json.libjar包

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它采用完全独立于语言的文本格式,同时也易于人阅读和编写,同时也易于机器解析和生成。在Java开发中,`json.libjar`包通常指的是`json-lib`库,这...

    json-lib共7个包.rar

    `net.sf.ezmorph`是另一个与`json-lib`关联的库,它提供了一种动态类型转换机制。EZ Morph库主要用于对象的变形(Morphing),在将Java对象转换为JSON时,可能会遇到各种数据类型的转换问题,`ezmorph`库能够帮助...

Global site tag (gtag.js) - Google Analytics