4 Java对象转换成JSON

4.1 问题

将Java对象转换成符合JSON格式的字符串,并测试。

4.2 方案

使用与json-lib.jar相关的jar文件完成类型的转换。

4.3 步骤

步骤一:新建实体类Friend

图- 15

步骤二:新建JSONTest类

在该类中添加四个方法,分别用于测试Java对象转换为JSON字符串,Java数组转换为JSON字符串,JSON字符串转换为Java对象,JSON字符串转换为Java数组。

步骤三:引入jar文件

在添加jar文件的时候,需要导入6个jar文件,缺一不可。如图-16所示。

图- 16

步骤四:添加具体的转换方法:Java对象转换为JSON字符串

图- 17

步骤五:运行结果

图– 18

步骤六:Java数组(集合)转换为JSON字符串

图– 19

运行结果:

图- 20

步骤七:JSON字符串转换为Java对象

图– 21

运行结果:

图- 22

步骤八:JSON字符串转换为Java数组(集合)

图– 23

运行结果:

图- 24

4.4 完整代码

Friend.java文件代码如下:

package bean;

public class Friend {
private String name;
private int age; public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public int getAge() {
return age;
} public void setAge(int age) {
this.age = age;
} public String toString() {
return this.name + " " + this.age;
}
}

JSONTest.java文件代码如下:

package json;

import java.util.ArrayList;
import java.util.List; import net.sf.json.JSONArray;
import net.sf.json.JSONObject; import bean.Friend; public class JSONTest {
/**
* Java对象转换为JSON字符串
*/
public static void test1() {
Friend f = new Friend();
f.setName("Zoro");
f.setAge(19);
JSONObject jsonObj = JSONObject.fromObject(f);
String jsonStr = jsonObj.toString();
System.out.println(jsonStr);
} /**
* Java数组转换为JSON字符串
*/
public static void test2() {
List<Friend> fs = new ArrayList<Friend>();
for (int i = 0; i < 3; i++) {
Friend f = new Friend();
f.setName("Zoro" + (i + 1));
f.setAge(19 + i);
fs.add(f);
}
JSONArray jsonArr = JSONArray.fromObject(fs);
String jsonStr = jsonArr.toString();
System.out.println(jsonStr);
}
/**
* JSON字符串转换为Java对象
*/
public static void test3(){
String jsonStr = "{\"name\":\"Luffy\",\"age\":17}";
JSONObject jsonObj = JSONObject.fromObject(jsonStr);
Friend friend = (Friend)JSONObject.
toBean(jsonObj, Friend.class);
System.out.println(friend);
} /**
* JSON字符串转换为Java数组
*/
public static void test4(){
String jsonStr = "[{\"name\":\"Luffy\",\"age\":17}," +
" {\"name\":\"Zoro\",\"age\":19}]";
JSONArray jsonArr = JSONArray.fromObject(jsonStr);
List<Friend> friends = (List<Friend>)JSONArray.
toCollection(jsonArr, Friend.class);
for(Friend f :friends){
System.out.println(f);
}
} public static void main(String[] args) {
//test1();
//test2();
//test3();
test4();
} }

使用json格式的数据进行通信的更多相关文章

  1. ASP.NET API(MVC) 对APP接口(Json格式)接收数据与返回数据的统一管理

    话不多说,直接进入主题. 需求:基于Http请求接收Json格式数据,返回Json格式的数据. 整理:对接收的数据与返回数据进行统一的封装整理,方便处理接收与返回数据,并对数据进行验证,通过C#的特性 ...

  2. MVC学习系列6--使用Ajax加载分部视图和Json格式的数据

    Ajax的应用在平时的工作中,很是常见,这篇文章,完全是为了,巩固复习. 我们先看看不使用json格式返回分部视图: 先说需求吧: 我有两个实体,一个是出版商[Publisher],一个是书[Book ...

  3. asp.net MVC控制器中返回JSON格式的数据时提示下载

    Asp.net mvc在接收的是JSON格式的数据,但是奇怪的是在IE中提示下载文件,其他浏览器中一切正常,下载后,里面的内容就是在控制器中返回的数据.代码如下: 视图中js代码: $("# ...

  4. SQLyog-直接导出JSON格式的数据

          前言:以前做过的一个项目,有这样的一个需求使用搜索引擎来查询对应的区域信息,不过区域信息要先导出来,并且数据格式是JSON格式的,在程序中能实现这个需求,不过下面的这种方法更加的简单,通过 ...

  5. hive中导入json格式的数据(hive分区表)

    hive中建立外部分区表,外部数据格式是json的如何导入呢? json格式的数据表不必含有分区字段,只需要在hdfs目录结构中体现出分区就可以了 This is all according to t ...

  6. $.ajax返回的JSON格式的数据后无法执行success的解决方法

    近段时间做项目,在项目使用了ajax技术,遇到了一个奇怪的问题:"$.ajax返回的JSON格式的数据无法执行success",代码是这样写的: 1 $.ajax({ 2 .. 3 ...

  7. Android Volley获取json格式的数据

    为了让Android能够快速地访问网络和解析通用的数据格式Google专门推出了Volley库,用于Android系统的网络传输.volley库可以方便地获取远程服务器的图片.字符串.json对象和j ...

  8. jmeter随笔(1)-在csv中数据为json格式的数据不完整

    昨天同事在使用jmeter遇到问题,在csv中数据为json格式的数据,在jmeter中无法完整的取值,小怪我看了下,给出解决办法,其实很简单,我们一起看看,看完了记得分享给你的朋友. 问题现象: 1 ...

  9. mybatis 处理数组类型及使用Json格式保存数据 JsonTypeHandler and ArrayTypeHandler

    mybatis 比 ibatis 改进了很多,特别是支持了注解,支持了plugin inteceptor,也给开发者带来了更多的灵活性,相比其他ORM,我还是挺喜欢mybatis的. 闲言碎语不要讲, ...

随机推荐

  1. Recover Binary Search Tree-恢复二叉查找树

    题目描述: 由于某种原因一个二叉排序树的两个节点的元素被交换,在不改变树的结构的情况下恢复这颗二叉排序树 题目来源: http://oj.leetcode.com/problems/recover-b ...

  2. J2ee 巴巴网站制作(一)

    用户模块图:

  3. k近邻法

    k近邻法(k nearest neighbor algorithm,k-NN)是机器学习中最基本的分类算法,在训练数据集中找到k个最近邻的实例,类别由这k个近邻中占最多的实例的类别来决定,当k=1时, ...

  4. 阿里Druid数据库连接池使用

    阿里巴巴推出的国产数据库连接池,据网上测试对比,比目前的DBCP或C3P0数据库连接池性能更好 可以监控连接以及执行的SQL的情况. 加入项目的具体步骤: 1.导入jar <parent> ...

  5. javascript 网络是否连接的几种方案

    js   网络是否连接的几种方案 1.通过html5的新属性: window.onload = function () {            var isOnLine = navigator.on ...

  6. INDIGO STUDIO神器!快速创建WEB、移动应用的交互原型工具【转】

    转自:http://www.uisdc.com/indigo-studio-wireframe-interactive-uis 这套最新的设计工具出自Indigo工作室,永久免费,有mac版本和WIN ...

  7. ubuntu装机后的一些零散配置

    -2 以root用户登录 su passwd root 可参考http://blog.csdn.net/happyteafriends/article/details/7518893 : 先设定一个r ...

  8. [JWFD开源工作流]JWFD开源工作流官方下载内容更新

    在更新版的JWFD二次开发包中,我正在实现单线程的时钟控制器,动了下引擎的源代码,这个更新包主要是升级界面,内核代码,大家就不用升级了.. 代码提示: 请修改代码包中(org.jwfd.workflo ...

  9. 51nod 1050 循环数组最大子段和 (dp)

    http://www.51nod.com/onlineJudge/questionCode.html#problemId=1050&noticeId=13385 参考:http://blog. ...

  10. PowerDesign不让name和code联动

    当name和code一样时,修改name的话,code的值将跟着变动,很不方便.如果能让code不随着name编码就好了. PowerDesign中的选项菜单,在[Tool]-->[Genera ...