JSON封装数据的几种方式
package com.feture.test;
import com.feture.po.Game;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;import java.util.*;public class TestJson {public static void main(String[] args) {/**   JavaScript Object Notation*   JSON*   一种轻量级的数据交换格式,2004年诞生,2006年加入*   ajax技术体系,用来取代xml封装批量数据,可以在Java服务器端*   和Js端同时使用*   格式:*       1){key1:value1,key2:value2,keyN:valueN}*       key:字符串*       value:*       字符串*       八种基本数据类型*       null*       数组*       json**   2)[value1,value2,value3,valueN]**   value:*        字符串*       八种基本数据类型*       null*       数组*       json*封装方式1:可以封装任意数据类型,封装之后呈现第一种格式的json* */String str = "etoak";String[] strAr = {"济南","青岛","淄博"};boolean flag = true;int i = 100;JSONObject jo1 = new JSONObject();jo1.put("key1",str);jo1.put("key2",strAr);jo1.put("key3",flag);jo1.put("key4",i);//{"key1":"etoak","key2":["济南","青岛","淄博"],"key3":true,"key4":100}System.out.println(jo1);JSONObject jo2 = new JSONObject();jo2.put("myGame",new Game(1,"只狼","AVG"));//{"myGame":{"name":"只狼","id":1,"type":"AVG"}}System.out.println(jo2);/**   封装方式2:可以封装自定义数据类型和Map*   封装之后呈现第一种格式的json* */Map<Integer,String> map = new HashMap<Integer,String>();map.put(1,"Javascript");map.put(2,"jQuery");map.put(3,"VUE");map.put(4,"Angular");map.put(5,"React");JSONObject js1 = JSONObject.fromObject(map);//{"1":"Javascript","2":"jQuery","3":"VUE","4":"Angular","5":"React"}System.out.println(js1);JSONObject js2 = JSONObject.fromObject(new Game(2,"dota自走棋","slg"));//{"name":"dota自走棋","id":2,"type":"slg"}System.out.println(js2);//对自定义数据类型中的属性进行有选择的封装JsonConfig jc = new JsonConfig();//设置不需要封装的字段名jc.setExcludes(new String[]{"id","type"});JSONObject js3 = JSONObject.fromObject(new Game(3,"王者荣耀","moba"),jc);//{"name":"王者荣耀"}System.out.println(js3);/**   封装方式3:*       可以封装List Set 和 数组*       封装之后呈现格式2的json* */List<String> list = new ArrayList<String>();list.add("Iphone");list.add("Apple Watch");list.add("Air Pods");list.add("MacBook");list.add("Ipad");JSONArray ja1 = JSONArray.fromObject(list);//["Iphone","Apple Watch","Air Pods","MacBook","Ipad"]System.out.println(ja1);JSONArray ja2 = JSONArray.fromObject(strAr);//["济南","青岛","淄博"]System.out.println(ja2);Set<String> set = new HashSet<String>();set.add("Java");set.add("C");set.add("C++");set.add("Php");set.add("Swift");JSONArray ja3 = JSONArray.fromObject(set);//["Java","C++","C","Php","Swift"]System.out.println(ja3);}
}

JSON的入门介绍学习相关推荐

  1. 独家 | 集成学习入门介绍

    作者:Jason Brownlee 翻译:wwl 校对:王琦 本文约3300字,建议阅读8分钟. 本文介绍了我们在生活中的许多决定包括了其他人的意见,由于群体的智慧,有的时候群体的决策优于个体.在机器 ...

  2. AI Studio 飞桨 零基础入门深度学习笔记4-飞桨开源深度学习平台介绍

    AI Studio 飞桨 零基础入门深度学习笔记4-飞桨开源深度学习平台介绍 深度学习框架 深度学习框架优势 深度学习框架设计思路 飞桨开源深度学习平台 飞桨开源深度学习平台全景 框架和全流程工具 模 ...

  3. 干货 :集成学习入门介绍

    作者:Jason Brownlee   翻译:wwl    校对:王琦 本文约3300字,建议阅读8分钟. 本文介绍了我们在生活中的许多决定包括了其他人的意见,由于群体的智慧,有的时候群体的决策优于个 ...

  4. 编程比赛 介绍 入门 及 学习路线

    内容若有不足与纰漏,请多指教! 文章目录 写在前面 编程比赛介绍 蓝桥杯 天梯赛 CPC类 比赛 编程比赛要点注意 赛前 赛中 赛后 编程比赛常见术语 比赛相关 常见术语 编程 | 学习 学习 | 练 ...

  5. ZipKin原理学习--ZipKin入门介绍

    ZipKin入门介绍 Zipkin是一款开源的分布式实时数据追踪系统(Distributed Tracking System),基于 Google Dapper的论文设计而来,由 Twitter 公司 ...

  6. 学习Mysql过程中拓展的其他技术栈:Docker入门介绍

    一.Docker的介绍和安装 1. Docker是什么 百度百科的介绍: Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linu ...

  7. 对学习Eclipse的思考之基本入门介绍

    Eclipse 是现在比较常用的Java 的集成开发环境,下面对其进行简单的入门介绍如下: Eclipse 是一个开放源代码的.基于 Java 的可扩展开发平台. Eclipse 是 Java 的集成 ...

  8. [Python爬虫] scrapy爬虫系列 一.安装及入门介绍

    前面介绍了很多Selenium基于自动测试的Python爬虫程序,主要利用它的xpath语句,通过分析网页DOM树结构进行爬取内容,同时可以结合Phantomjs模拟浏览器进行鼠标或键盘操作.但是,更 ...

  9. [Python爬虫] 在Windows下安装PhantomJS和CasperJS及入门介绍(上)

    最近在使用Python爬取网页内容时,总是遇到JS临时加载.动态获取网页信息的困难.例如爬取CSDN下载资源评论.搜狐图片中的"原图"等,此时尝试学习Phantomjs和Caspe ...

最新文章

  1. 怎样用python自动化办公_会python基础,如何学习自动化办公?
  2. ADO.NET入门教程(三) 连接字符串,你小觑了吗?
  3. ununtu20.04系统中如何划词翻译_如何高效阅读PDF外文文献,这一篇文章全搞定
  4. 对mysql explain讲的比较清楚的
  5. 三十四、深入Java中的泛型(上篇)
  6. 计算机电源稳压,一种用于计算机的电源稳压电路
  7. 20200819:力扣202周周赛题解记录
  8. mongodb处理库 php_MongoDB数据库常用操作PHP代码
  9. 享元模式在 Java Integer 中的应用
  10. Duplicate Photos Fixer Pro for Mac用户指南:我可以比较不同时间的照片吗?
  11. PHP单元测试PHPUnit
  12. 【大牛分享】人机工程简史
  13. MicroDicom viewer(Dicom格式看图软件) v3.4.7官方版
  14. 一个美国人到中国当产品经理的心得:中国App设计真好!
  15. 盘点——iOS应用开发常用工具
  16. 如何修改steam中dota服务器,STEAM玩刀塔自走棋如何设置_STEAM玩刀塔自走棋教程_玩游戏网...
  17. 10015---SpringMVC--自定义视图
  18. 通过ssh访问docker容器的办法 亲测可行
  19. 内存条的逻辑BANK和RANK(物理BANK)概念
  20. Go语言如何实现删除Winmail邮箱系统中收件箱的所有邮件

热门文章

  1. 国产手机以价格战争锋折叠手机,然而定价权却在三星手上
  2. 文心一言对于宣传文案理解
  3. kubernetes1.6中redis-mong-zookeepe-rabbitmq集群部署
  4. matlab 画海面图,教你画波光粼粼的海面
  5. 华为openEuler(EulerOS)系统 设置yum源
  6. android 左测设置功能,iqoo手机左边按键有什么作用?iqoo手机左侧按键介绍
  7. 互联网常用的几种有效引流方法:精准引流获客加人吸粉
  8. 数据库操作--已更新或删除的行值要么不能使该行成为唯一行,要么改变了多个行
  9. 数据采集上报之灯塔SDK详解
  10. 计算机等级考试四级网络工程师必备考点总结