java对象和json对象之间互相转换

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

public class MainClass {

    public static void main(String[] args) {
        TestJsonBean();
        TestJsonAttribute();
        TestJsonArray();

    }

    @SuppressWarnings("rawtypes")
    private static void TestJsonArray() {
        Student student1 = new Student();
        student1.setId(1);
        student1.setName("jag");
        student1.setSex("man");
        student1.setAge(25);
        student1.setHobby(new String[] { "篮球", "游戏" });

        Student student2 = new Student();
        student2.setId(2);
        student2.setName("tom");
        student2.setSex("woman");
        student2.setAge(23);
        student2.setHobby(new String[] { "上网", "跑步" });

        List<Student> list = new ArrayList<Student>();
        list.add(student1);
        list.add(student2);

        JSONArray jsonArray = JSONArray.fromObject(list);
        System.out.println(jsonArray.toString());
        System.out.println("-----------------------");

        JSONArray new_jsonArray = JSONArray.fromObject(jsonArray.toArray());
        Collection java_collection = JSONArray.toCollection(new_jsonArray);
        if (java_collection != null && !java_collection.isEmpty()) {
            Iterator it = java_collection.iterator();
            while (it.hasNext()) {
                JSONObject jsonObj = JSONObject.fromObject(it.next());
                Student stu = (Student) JSONObject.toBean(jsonObj,
                        Student.class);
                System.out.println(stu.getName());
            }
            System.out.println("-----------------------");
        }
    }

    private static void TestJsonAttribute() {
        /**
         * 创建json对象并为该对象设置属性
         */
        JSONObject jsonObj = new JSONObject();
        jsonObj.put("Int_att", 25);// 添加int型属性
        jsonObj.put("String_att", "str");// 添加string型属性
        jsonObj.put("Double_att", 12.25);// 添加double型属性
        jsonObj.put("Boolean_att", true);// 添加boolean型属性
        // 添加JSONObject型属性
        JSONObject jsonObjSon = new JSONObject();
        jsonObjSon.put("id", 1);
        jsonObjSon.put("name", "tom");
        jsonObj.put("JSONObject_att", jsonObjSon);
        // 添加JSONArray型属性
        JSONArray jsonArray = new JSONArray();
        jsonArray.add("array0");
        jsonArray.add("array1");
        jsonArray.add("array2");
        jsonArray.add("array3");
        jsonObj.put("JSONArray_att", jsonArray);
        System.out.println(jsonObj.toString());
        System.out.println("Int_att:" + jsonObj.getInt("Int_att"));
        System.out.println("String_att:" + jsonObj.getString("String_att"));
        System.out.println("Double_att:" + jsonObj.getDouble("Double_att"));
        System.out.println("Boolean_att:" + jsonObj.getBoolean("Boolean_att"));
        System.out.println("JSONObject_att:"
                + jsonObj.getJSONObject("JSONObject_att"));
        System.out.println("JSONArray_att:"
                + jsonObj.getJSONArray("JSONArray_att"));
        System.out.println("-----------------------");
    }

    /**
     * java对象与json对象互相转换
     */
    private static void TestJsonBean() {
        /**
         * 创建java对象
         */
        Student student = new Student();
        student.setId(1);
        student.setName("jag");
        student.setSex("man");
        student.setAge(25);
        student.setHobby(new String[] { "篮球", "上网", "跑步", "游戏" });
        /**
         * java对象转换成json对象,并获取json对象属性
         */
        JSONObject jsonStu = JSONObject.fromObject(student);
        System.out.println(jsonStu.toString());
        System.out.println(jsonStu.getJSONArray("hobby"));
        System.out.println("-----------------------");
        /**
         * json对象转换成java对象,并获取java对象属性
         */
        Student stu = (Student) JSONObject.toBean(jsonStu, Student.class);
        System.out.println(stu.getName());
        System.out.println("-----------------------");
        /**
         * 创建json对象
         */
        JSONObject jsonObj = new JSONObject();
        jsonObj.put("id", 1);
        jsonObj.put("name", "张勇");
        jsonObj.put("sex", "男");
        jsonObj.put("age", 24);
        // jsonObj.put("hobby",new String[]{"上网","游戏","跑步","音乐"});
        // System.out.println(jsonObj.toString());
        /**
         * json对象转换成java对象
         */
        Student stud = (Student) JSONObject.toBean(jsonObj, Student.class);
        System.out.println(stud.getName());
        System.out.println("-----------------------");
    }
}

转载于:https://my.oschina.net/u/1161889/blog/412090

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/460228.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SQL Server :理解数据记录结构

原文:SQL Server &#xff1a;理解数据记录结构在SQL Server &#xff1a;理解数据页结构我们提到每条记录都有7 bytes的系统行开销&#xff0c;那这个7 bytes行开销到底是一个什么样的结构&#xff0c;我们一起来看下。 数据记录存储我们具体的数据&#xff0c;换句话说&#…

京东云擎提供了免费的wordpress一键安装功能了

1. 京东云擎(http://jae.jd.com)提供了免费的个人博客WordPress一键安装功能了&#xff0c;如下图&#xff0c;给开发者分享福利&#xff01; 免费的应用&#xff0c;提供了源码&#xff0c;提供了数据库&#xff1a; 我之前把文章发到首页&#xff0c;遭到了封杀&#xff01;本…

Distinct源码分析

以前比较两个List数据&#xff0c;筛选出所需要的数据时候&#xff0c;一直套两层for循环来执行。用到去重(Distinct)的时候&#xff0c;这两个需求其实都是一样的&#xff0c;都是需要比较两个集合&#xff0c;查看了下它的源码&#xff0c;里面确实有值得借鉴的地方。 先附上…

java语言 编译原理_【Java学习】深入分析Java的编译原理

在《Java代码的编译与反编译》中&#xff0c;有过关于Java语言的编译和反编译的介绍。我们可以通过javac命令将Java程序的源代码编译成Java字节码&#xff0c;即我们常说的class文件。这是我们通常意义上理解的编译。但是&#xff0c;字节码并不是机器语言&#xff0c;要想让机…

实验 使用 vivado zedboard GPIO 开关 开控制 LED

前面我做了几个实验 都没有用过 开关&#xff0c;这一次用一用 发现 vivado 真的挺方便 所以 使用 vivado 开发 1.建工程 我使用 vivado 2013.4 创建新工程 –》 next –》next 勾选 Do not specify sources at this time //这样跳过后面两个添加文件页面 选择 board –》 ze…

java 最优化_java-多维度求最优解

拿出11条数据//条件每个位置(position)的人数限制每队(team)人数不能超过7人credits的总和在100分之内(包含100)总分(points)最高//位置人数限制position-1 : 1 position-2 : 3-5 position-3 : 1-3 position-4 : 3-5//模拟数据{points credits position team56 9.0 1 t154 9.1 …

必应(Bing)每日图片获取API

必应(Bing)每日图片获取API January 11, 2015 API http://lab.dobyi.com/api/bing.php 介绍 ValueDescriptiontitle标题desc描述url图片地址你们自由发挥……

java取模多位数_JAVA大数类—基础操作(加减乘除、取模、四舍五入、设置保留位数)...

当基础数据类型长度无法满足需求时可以使用大数类构造方法接受字符串为参数1 BigInteger bInt new BigInteger("123123");2 BigDecimal bDouble new BigDecimal("123123.123123124");基础操作(取模使用divideAndRemainder方法&#xff0c;返回的数组第二…

HDU 4902

数据太弱&#xff0c;直接让我小暴力一下就过了&#xff0c;一开始没注意到时间是15000MS&#xff0c;队友发现真是太给力了 #include <cstdio> #include <cstring> int n,q,a[100005],x[100005],p,l[100005],r[100005],t[100005]; int tree[1000005]; void build(…

tcp/udp高并发和高吐吞性能测试工具

在编写一个网络服务的时候都比较关心这个服务能达到多少并发连接,而在这连接的基础上又能达到一个怎样的交互能力.编写服务已经是一件很花力气的事情,而还要去编写一个能够体现结果的测试工具就更加消耗工作时间.下面介绍一个测试工具只需要简单地设置一下就能对tcp/udp服务进行…

几个数字的和

ctrl z 的使用 #include<iostream> using namespace std;main() {int num,sum0;while(cin>>num) {sumnum;}cout<<"和为"<<sum<<endl; } View Code#include<iostream> using namespace std; main() { int num,s…

网站在线压力测试工具Load Impact

关于Load ImpactLoad Impact是一个一个在线的网站压力测试服务及工具&#xff0c;模拟多用户同时访问你的站点&#xff0c;并出具报告以分析你的站点可以支撑的访问者数量&#xff0c;它能让你通过简单的几次点击就能测试出你的网站的性能。不过免费用户只能同时并发50个虚拟访…

sc.next在java什么意思_sc.next() 和 nextLine 的原理

对java的Scanner类的next开头的相关类有点纠结&#xff0c;看了一些博客大致懂了&#xff0c;整理下代码事例直接参考了这位大佬的https://blog.csdn.net/long71751380/article/details/94008351. 总的原理以一段代码为例,scanner类import java.util.Scanner;public class Next…

WPF RichTextBox相关总结

由于公司涉及到聊天对话框的功能&#xff0c;就想到了RichTextBox&#xff0c;查阅相关资料&#xff0c;总结下&#xff1a; 一、RichTextBox的内容相关的类 1.1RichTextBox的内容结构 RichTexBox是个可编辑控件&#xff0c;可编辑我们很容易想到word的可编辑&#xff0c;在wor…

python 内置方法赋值_Python内置数据结构之字符串str

1. 数据结构回顾所有标准序列操作(索引、切片、乘法、成员资格检查、长度、最小值和最大值)都适用于字符串&#xff0c;但是字符串是不可变序列&#xff0c;因此所有的元素赋值和切片赋值都是非法的。>>> website http://www.python.org>>> website[-3:] c…

以下是关于ASP.NET中保存各种信息的对象的比较,理解这些对象的原理,对制作完善的程序来说是相当有必要的(摘至互联网,并非原创--xukunping)...

在ASP.NET中&#xff0c;有很多种保存信息的对象.例如:APPlication,Session,Cookie,ViewState和Cache等,那么它们有什么区别呢?每一种对象应用的环境是什么? 为了更清楚的了解,我们总结出每一种对象应用的具体环境,如下表所示: 方法信息量大小保存时间应用范围保存位置App…

实现每个点赞用户点击的带属性的字符串

2019独角兽企业重金招聘Python工程师标准>>> #pragma mark - 点击各个点赞用户-(void)setClicked:(TweetCell *)cell andOSCTweet:(OSCTweet *)tweet {NSMutableAttributedString *attributedString [[NSMutableAttributedString alloc] initWithString:tweet.like…

xampp php5.6 7.1共存,New XAMPP with PHP 7.2.8, 7.1.20, 7.0.31 5.6.37

嗨&#xff0c;阿帕奇的朋友们&#xff01;We just released new versions of XAMPP for all platforms with the latest PHP versions: 7.2.8, 7.1.20, 7.0.31 & 5.6.37.您可以下载这些新版本http://www.apachefriends.org/download.html.7.2.8 / 7.1.20 / 7.0.31 / 5.6.3…

基于.net开发chrome核心浏览器【四】

原文:基于.net开发chrome核心浏览器【四】一&#xff1a; 上周去北京出差&#xff0c;给国家电网的项目做架构方案&#xff0c;每天都很晚睡&#xff0c;客户那边的副总也这样拼命工作。 累的不行了&#xff0c;直接导致第四篇文章没有按时发出来。 希望虚心学习1&#xff0c;小…

php5.6 pdo.dll 没有,php5.6没有pdo怎么办

php5.6没有pdo是因为在php5.6中php已经内置了pdo功能&#xff0c;只需要在php.ini文件中将“extensionphp_pdo_firebird.dll”等配置项打开即可。推荐&#xff1a;《PHP视频教程》php5.6中没有php.pdo.dll文件我下载的php 5.6要使用pdo模块&#xff0c;但是通过百度发现发现没有…