`

转载JSON Format(二)

    博客分类:
  • JSON
阅读更多
转载http://blog.toright.com/?p=397
JSON Format
JSON為輕量級的資料表示格式,比起 XML 鬆散許多且不需要定義描述檔,JSON網站 http://json.org/

Json-lib API
Json-lib 為在眾多處理 Jsob Format API 中實作功能比較多的一個套件,可由下列網址取得。

http://json-lib.sourceforge.net/ 此外,Json-lib還需要以下 Library

jakarta commons-lang 2.4
jakarta commons-beanutils 1.7.0
jakarta commons-collections 3.2
jakarta commons-logging 1.1.1
ezmorph 1.0.6
JSON 與 POJO 轉換實作
設計兩個Model

Model.java

private String title;
	private int num;
	private Integer sort;
	private Date date;
	private String[] strArray;
	private SubModel subModel;
SubModel.java

private String name;
Marshal 實作
Object2JSON.java

import java.util.Date;

import net.sf.json.JSONObject;

public class Object2JSON {

	public static void main(String[] args) {
		//產生Model
		Model model = new Model();
		model.setTitle("Master MOdel");
		model.setNum(99);
		model.setSort(10);
		model.setDate(new Date());
		model.setStrArray(new String[]{"str1","str2"});
		SubModel subModel = new SubModel();
		subModel.setName("MySubModel");
		model.setSubModel(subModel);
		//轉換為JSON
		String json = JSONObject.fromObject(model).toString();
		//顯示XML
		System.out.println(json);
	}

}
Unmarshal 實作
JSON2Object.java

import net.sf.json.JSONObject;

public class JSON2Object {

	public static void main(String[] args) {
		String json = "{\"date\":{\"date\":27,\"day\":2,\"hours\":15,\"minutes\":30,\"month\":9,\"seconds\":35,\"time\":1256628635421,\"timezoneOffset\":-480,\"year\":109},\"num\":99,\"sort\":10,\"strArray\":[\"str1\",\"str2\"],\"subModel\":{\"name\":\"MySubModel\"},\"title\":\"Master MOdel\"}";
		//轉換JavaBean
		Model model = (Model)JSONObject.toBean( JSONObject.fromObject( json ), Model.class );
		//顯示內容
		System.out.println("Title:"+model.getTitle());
		System.out.println("Num:"+model.getNum());
		System.out.println("Sort:"+model.getSort());
		System.out.println("Date:"+model.getDate());
		System.out.println("SubModel:"+model.getSubModel());
		System.out.println("SubModel[Name]:"+model.getSubModel().getName());
	}

}
Json-lib 結論
過測試之後發現 Json 對 Array 是支援的,但是對於 List 與 Hashtable 的 Unmarshal 卻是不支援。假設 Json 未來成為 Web Service 重要的傳輸格式,那麼實作 Json 更高階的 Unmarshal 是絕對必要的工作。

分享到:
评论

相关推荐

    com.fasterxml.jackson

    Jackson有三种方式处理Json: 使用底层的基于Stream的方式对Json的每一个小的组成部分进行控制 使用Tree Model,通过JsonNode处理单个Json...简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

    java 时间转换(转载)

    在JSON序列化时,可能需要将日期时间转换为字符串,可以使用`Jackson`库的`@JsonFormat`注解来指定序列化格式。 在提供的`Test.java`文件中,可能包含了对上述知识点的实际应用代码。通过阅读和理解这段代码,你...

    (转载)C# 解析百度天气数据,Rss解析百度新闻以及根据IP获取所在城市

    var url = $"http://api.ipinfodb.com/v3/ip_city/?key={apiKey}&ip={ip}&format=json"; var response = await httpClient.GetAsync(url); var content = await response.Content.ReadAsStringAsync(); var ipData =...

    JS组件Bootstrap Table使用方法详解

    转载 2016年03月21日 15:06:09 标签: Bootstrap Table 最近客户提出需求,想将原有的管理系统,做下优化,通过手机也能很好展现,想到2个方案: a方案:保留原有的页面,新设计一套适合手机的页面,当手机访问时,...

    动态加载概述与原理.docx

    动态加载概述与原理.docx

    LOL_params_0900000.pt

    LOL_params_0900000.pt

    分群用户详情_7_2024-09-06 09_49_58.xlsx

    分群用户详情_7_2024-09-06 09_49_58

    动态加载的高级主题:懒加载与按需加载.docx

    动态加载的高级主题:懒加载与按需加载.docx

    【超强组合】基于VMD-开普勒优化算法KOA-Transformer-LSTM的光伏预测算研究Matlab实现.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 替换数据可以直接使用,注释清楚,适合新手

    Minecraft 1.20.1 Paper Plugin-基于Towny Flagwar 为其实现中立国家

    为Towny Flagwar实现中立国家 /nasetnu 设置自己的国家为中立(仅king可用)

    resnet模型-基于图像分类算法对度假胜地识别-不含数据集图片-含逐行注释和说明文档.zip

    本代码是基于python pytorch环境安装的。 下载本代码后,有个环境安装的requirement.txt文本 首先是代码的整体介绍 总共是3个py文件,十分的简便 本代码是不含数据集图片的,下载本代码后需要自行搜集图片放到对应的文件夹下即可 需要我们往每个文件夹下搜集来图片放到对应文件夹下,每个对应的文件夹里面也有一张提示图,提示图片放的位置 然后我们需要将搜集来的图片,直接放到对应的文件夹下,就可以对代码进行训练了。 运行01生成txt.py,是将数据集文件夹下的图片路径和对应的标签生成txt格式,划分了训练集和验证集 运行02CNN训练数据集.py,会自动读取txt文本内的内容进行训练,这里是适配了数据集的分类文件夹个数,即使增加了分类文件夹,也不需要修改代码即可训练 训练过程中会有训练进度条,可以查看大概训练的时长,每个epoch训练完后会显示准确率和损失值 训练结束后,会保存log日志,记录每个epoch的准确率和损失值 最后训练的模型会保存在本地名称为model.ckpt 运行03pyqt界面.py,就可以实现自己训练好的模型去识别图片了

    基于Java的订餐系统设计与实现:涵盖系统架构、前端交互与数据库管理

    内容概要:本文详细介绍了一款基于Java的订餐系统的设计与实现。文章首先介绍了互联网时代背景下,订餐系统作为一种新型生活方式的便捷性与必要性。接着阐述了系统的设计背景、目的及其所采用的技术框架(如JSP、MySQL、MyEclipse)。系统分为前台和后台两大部分,前台主要负责用户的界面展示和互动,包括食品展示、查询、购物车等功能;后台则是管理员进行餐品管理和用户信息维护的平台。文中还详细解析了各主要功能模块的设计思路和技术实现细节,以及数据库表结构的设计。 适合人群:具备一定的Java开发基础,对Web应用开发有兴趣的初学者或工程师。 使用场景及目标:用于学习基于B/S架构的订餐系统的开发全过程,理解前后端分离、JSP动态页面生成、MySQL数据库操作等核心技术的应用。适合希望深入了解餐饮管理系统内部运作机制的学生或从业者。 其他说明:此系统设计符合现代互联网发展趋势,通过引入JSP、JavaScript、MySQL等主流技术,旨在提高餐饮行业的管理效率和服务水平,增强用户体验。此外,本项目也包含了系统测试的内容,确保各项功能的正常运转。

    【java毕业设计】家用电器销售网站源码(ssm+jsp+mysql+说明文档+LW).zip

    功能说明: 管理员:个人中心、用户管理、商品分类管理、品牌管理、商品信息管理、订单评价管理、留言板管理、系统管理、订单管理。用户:个人中心、订单评价管理、我的收藏管理、订单管理。前台首页:首页、商品信息、商品资讯、留言反馈、我的、跳转到后台、购物车等功能的家用电器销售网站。 环境说明: 开发语言:java 框架:ssm jdk版本:jdk1.8 数据库:mysql 5.7+ 数据库工具:Navicat11+ 管理工具:maven 开发工具:idea/eclipse 部署容器:tomcat7+

    联想电脑的bios设置

    联想电脑的bios设置、图文都有

    基于springboot+vue+redis+mysql实现的大学生宿舍管理系统【源码+数据库】

    技术:ssm+mysql+redis vue+element 功能:宿舍管理、学生管理、班级管理、宿舍楼管理、维修记录、晚归记录、请假记录、用户管理、角色管理、菜单管理、日志管理

    【超强组合】基于VMD-飞蛾扑火优化算法MFO-Transformer-GRU的光伏预测算研究Matlab实现.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 替换数据可以直接使用,注释清楚,适合新手

    跨浏览器兼容性测试.docx

    跨浏览器兼容性测试.docx

    编译供c语言使用的Vosk库,可以直接使用省去编译的麻烦过程

    Vosk是一个开源的语音识别工具,支持中英文及多种语言,具备离线识别能力,且不依赖互联网。优势 Vosk 是一个离线开源语音识别工具包,它的优点在于: 轻量:Vosk 提供轻量级的模型(小于 50MB 大小),可以用于低功耗平台(例如 Android、树莓派之类) 多编程语言、多平台支持:Python、Java、Node.js、C#、C++、Rust、Go 等 多语种支持:支持二十多种语言的识别(包括中文) 实时性:实时性语音识别场景下,vosk 的延迟非常低 简单来讲,你电脑中有 Python 环境,再下载一个 50 MB 的模型,就可以用 Vosk 实现一个正确率还可以接受的语言识别相关的项目。而像 Whisper 虽然识别效果好,但是对硬件要求很高,同时部署起来麻烦(例如需要配置 CUDA 环境),另外也不是很适用于实时性场景。 此包为编译好的c调用的运行库,有需要的可以直接下载使用。

    影视源码自动对接资源站开源源码

    影视源码自动对接资源站开源源码

    【超强组合】基于VMD-多元宇宙优化算法MVO-Transformer-GRU的光伏预测算研究Matlab实现.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 替换数据可以直接使用,注释清楚,适合新手

Global site tag (gtag.js) - Google Analytics