在使用jquery的时候接触到json这种格式,在网上查了下,讲解都不是很好,自己就总结了一下,总结结果如下
JSON是一种很简洁很重要的数据格式,通常用来交换传输数据,广泛使用于JavaScript技术中,并逐渐在各种流行编程语言中火了起来。在Java中也有一个JSON的库,用来重要作用就是Java对象与JSON、XML数据的相互转换,有着重要的应用。
开源的JSON库主页:http://json-lib.sourceforge.net/
环境:JDK5 , json-lib-2.3-jdk15
所依赖的包:json-lib-2.3-jdk15.jar,commons-collections.jar,commons-lang.jar,commons-logging.jar,commons-beanutils.jar,ezmorph-1.0.6.jar,xom-1.1.jar
java中各种类型所对应的json格式:
1.数组或集合-->JSON串
public static void test1() {
System.out.println("------------数组或集合-->JSON串----------");
boolean[] boolArray = new boolean[]{true, false, true};
JSONArray jsonArray1 = JSONArray.fromObject(boolArray);
System.out.println(jsonArray1);
//输出格式: [true,false,true]
List list = new ArrayList();
list.add("first");
list.add("second");
JSONArray jsonArray2 = JSONArray.fromObject(list);
System.out.println(jsonArray2);
//输出格式: ["first","second"]
JSONArray jsonArray3 = JSONArray.fromObject("['json','is','easy']");
System.out.println(jsonArray3);
//输出格式: ["json","is","easy"]
}
2.Object|Map-->JSON串
public static void test2() {
System.out.println("------------Object|Map-->JSON串----------");
Map map = new HashMap();
map.put("name", "json");
map.put("bool", Boolean.TRUE);
map.put("int", new Integer(1));
map.put("arr", new String[]{"a", "b"});
map.put("func", "function(i){ return this.arr[i]; }");
JSONObject jsonObject1 = JSONObject.fromObject(map);
System.out.println(jsonObject1);
//输出格式: {"func":function(i){ return this.arr[i]; },"arr":["a","b"],"int":1,"bool":true,"name":"json"}
JSONObject jsonObject2 = JSONObject.fromObject(new MyBean());
System.out.println(jsonObject2);
//输出格式: {"func1":function(i){ return this.options[i]; },"func2":function(i){ return this.options[i]; },"name":"json","options":["a","f"],"pojoId":1}
}
public class MyBean {
private String name = "json";
private int pojoId = 1;
private char[] options = new char[]{'a', 'f'};
private String func1 = "function(i){ return this.options[i]; }";
private JSONFunction func2 = new JSONFunction(new String[]{"i"}, "return this.options[i];");
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getPojoId() {
return pojoId;
}
public void setPojoId(int pojoId) {
this.pojoId = pojoId;
}
public char[] getOptions() {
return options;
}
public void setOptions(char[] options) {
this.options = options;
}
public String getFunc1() {
return func1;
}
public void setFunc1(String func1) {
this.func1 = func1;
}
public JSONFunction getFunc2() {
return func2;
}
public void setFunc2(JSONFunction func2) {
this.func2 = func2;
}
}
3.JSON串-->Object
public static void test3() {
System.out.println("------------JSON串-->Object----------");
String json1 = "{name=/"json/",bool:true,int:1,double:2.2,func:function(a){ return a; },array:[1,2]}";
JSONObject jsonObject1 = JSONObject.fromObject(json1);
Object bean1 = JSONObject.toBean(jsonObject1);
System.out.println(bean1);
//net.sf.ezmorph.bean.MorphDynaBean@10dd1f7[
// {double=2.2, func=function(a){ return a; }, int=1, name=json, bool=true, array=[1, 2]}
//]
String json2 = "{bool:true,integer:1,string:/"json/"}";
JSONObject jsonObject2 = JSONObject.fromObject(json2);
BeanA bean2 = (BeanA) JSONObject.toBean(jsonObject2, BeanA.class);
System.out.println(bean2);
// BeanA{bool=true, integer=1, string='json'}
}
public class BeanA {
private boolean bool;
private Integer integer;
private String string;
public boolean isBool() {
return bool;
}
public void setBool(boolean bool) {
this.bool = bool;
}
public Integer getInteger() {
return integer;
}
public void setInteger(Integer integer) {
this.integer = integer;
}
public String getString() {
return string;
}
public void setString(String string) {
this.string = string;
}
@Override
public String toString() {
return "BeanA{"bool=" + bool +", integer=" + integer +", string='" + string + '/'' +"}";
}
}
4.JSON串-->XML
public static void test4() {
System.out.println("------------JSON串-->XML----------");
JSONObject json = new JSONObject(true);
String xml = new XMLSerializer().write(json);
System.out.println(xml);
JSONObject json1 = JSONObject.fromObject("{/"name/":/"json/",/"bool/":true,/"int/":1}");
String xml1 = new XMLSerializer().write(json1);
System.out.println(xml1);
JSONArray json2 = JSONArray.fromObject("[1,2,3]");
String xml2 = new XMLSerializer().write(json2);
System.out.println(xml2);
}
5.XML-->JSON串
public static void test5() {
System.out.println("------------XML-->JSON串----------");
String xml = "" +
"<a class=/"array/">/n" +
" <e type=/"function/" params=/"i,j/">/n" +
" return matrix[i][j];/n" +
" </e>/n" +
"</a>";
JSONArray json = (JSONArray) new XMLSerializer().read(xml);
System.out.println(json);
}
特别注意:
1、所有的Bean都应该定义为public,否则会出现net.sf.json.JSONException: java.lang.NoSuchMethodException: Property '***' has no getter method的错误。
2、必须引入xom-1.1.jar包,否则抛出java.lang.NoClassDefFoundError: nu/xom/Serializer
分享到:
相关推荐
浅谈JAVA中JSON的应用——以天气预报数据接口为例.pdf
* JSON数据交互 什么是JSON? 14.1.1 JSON概述 JSON(JavaScript Object Notation,JS对象标记)是一种轻量级的数据交换格式。它是基于JavaScript的一个子集,使用了C、C++、C#、Java、JavaScript、Perl、Python等...
一个Java库,它将JSON5或JSON格式解析为Java对象的普通树(使用Map<>作为字典,而使用List<>作为数组)。 它在JitPack上直播。 在线演示; 它显示了用于将JSON5对象转换为纯JSON的库。 解析器是从参考...
Java 应用程序,PHP Json 该应用程序包括从 Web 服务器获取数据,使用 java 实现 HttpURLConnection 协议,而不是像通常那样使用 Mysql 控制器。 在 Java 中,我们创建了一个类,它将向我们的 Web 服务器发出请求,...
解析JSON数据 显示天气信息 运行天气应用程序 总结 在完成这个项目之前,您需要一个天气API的访问密钥(API Key)。您可以在各大天气服务提供商的网站上注册并获取免费的API Key。本示例中,我们将使用...
数据库检索功能用户的故事作为前端开发人员,我希望有一个Java程序(用作API),用于根据JSON字段中作为键的ID(而不是主键ID)从数据库中的记录中检索JSON数据。用于数据库记录)。 此ID将是一个唯一编号,它将作为...
在.NET中使用AJAX技术来做服务器端和客户端交互,用JSON做为在异步应用程序中发送和接收信息的数据格式。
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式, json是个非常重要的数据结构,在web开发中应用十分广泛。下面通过本文给大家讲解Java中json使用方法,感兴趣的朋友一起看看吧
Java对象与Json之间的互相转换的jar包,json是个非常重要的数据结构,在web开发中应用十分广泛。
让我们假设您已经知道什么是JSON Schema,并且想要在Java应用程序中利用它来验证JSON数据。 但是-正如您可能已经发现的-JSON Schema规范还有另一个Java实现。 因此,这里有一些有关使用哪种建议的建议: 如果您...
绝对高级应用,能够适应各种环境各种...开源的FlashChart2的应用,并且结合最新支持的Json配置,可以灵活显示数据为曲线图,柱状图,折线图,饼图等。绝对适合项目应用。该代码要在应用发布后使用,例子是java语言的。
简单地说,JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从 Web 客户机传递给服务器端程序。这个字符串看起来有点儿古怪,...
jsonschema2pojo jsonschema2pojo从JSON模式(或示例JSON)... 您可以将jsonschema2pojo用作Maven插件,Ant任务,命令行实用程序,Gradle插件或嵌入在自己的Java应用程序中。 指南将向您展示如何。 一个非常简单的Mav
JSON简介 JSON(JavaScript Object Notation)...JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。
该方法以 XML 字符串数据为输入并将其转换成 JSON 格式的数据输出。这种 PHP 的解决方案有以下几方面的优点: 可以独立模式运行,在命令行下执行。 可以包含到已有服务器端代码工件中。 很容易承载为 Web 上的 ...
这个库是专门为Java开发者设计的,它提供了一套简洁的API来解析和生成JSON数据,使得在Java应用程序中处理JSON变得快速和高效。 ### 资源特点 1. **全面兼容**:net.sf.json库支持广泛的JSON操作,包括对象序列化...
格式准备的夹具快速轻松地测试我们的应用程序。 夹具(根据 ):“在软件测试中,测试夹具是被测软件的固定状态,用作运行测试的基线。” JSON fixture :一组用于测试某些代码的数据,以 JSON 格式给出。 该库提供...
第三步:view页面设计,页面中include必须的js及swf文件,指定图形要显示的区域,加载action返回的json数据,就可以显示图形了。 注:Open Flash Chart是根据传入的json数据的参数不同,来显示不同的chart图,非常...
list父子节点转树json,大家也可以结合我的博客查看,下载以后可以直接应用 博客地址为:https://blog.csdn.net/qq_25814003/article/details/80519421
尽管SODA在处理JSON数据时特别强大,但也支持任何其他类型的数据。 使用SODA架构,您的数据存储为文档,并且文档被组织为集合。 每个文档都包含实际数据以及SODA自动维护的其他信息,例如唯一键,上次修改的时间戳...