json 在java 中的应用
2015-12-24 10:41
387 查看
json在数据传输中经常会用到,尤其是在大量数据传输或者异步传输中,下面在互联网上搜集一些使用的例子,总结一下,以供日后的更加熟练。
JSONObject类(往往与JSONArray结合起来用,最常用了)
例子:package javaJsonAPI; import org.json.JSONObject; public class JsonArrayTest { /* * 表示我没有在官网http://www.json.org/里面找到json的jar包 ,这里我的解决 方案是下载官网提供的源文件*.java * 项目里面建了一个名为org.json的package,把源文件都导入进去了,其实和在classpath中导入jar包没有区别 */ public static void main(String args[]) { JSONObject jsonObject = new JSONObject({'name':'DarkRake','age':21}); System.out.println(jsonObject.get(name)); System.out.println(jsonObject.get(age)); } }
JSONArray类 案例:
package javaJsonAPI; import org.json.JSONArray; public class JsonArrayTest { /* * 表示我没有在官网http://www.json.org/里面找到json的jar包 ,这里我的解决 方案是下载官网提供的源文件*.java * 项目里面建了一个名为org.json的package,把源文件都导入进去了,其实和在classpath中导入jar包没有区别 */ public static void main(String args[]) { String strs[] = { one, two, three }; JSONArray myjson = new JSONArray(strs); for (int i = 0; i < myjson.length(); i++) { System.out.println(myjson.getString(i)); } } }
JSONObject与JSONArray类结合使用
package javaJsonAPI; import org.json.JSONObject; public class JsonArrayTest { /* * 表示我没有在官网http://www.json.org/里面找到json的jar包 ,这里我的解决 方案是下载官网提供的源文件*.java * 项目里面建了一个名为org.json的package,把源文件都导入进去了,其实和在classpath中导入jar包没有区别 */ public static void main(String args[]) { String str = {address: {Province: {ProvinceName: 安徽,City: [{CityName: 六安, own: [金安区,舒城] },{CityName: 合肥, own: [肥东,肥西]}]}}}; JSONObject jo = new JSONObject(str); String ProvinceName = jo.getJSONObject(address)// .getJSONObject(Province).get(ProvinceName).toString();// System.out.println(ProvinceName); String cityName = jo.getJSONObject(address).getJSONObject(Province)// .getJSONArray(City).getJSONObject(0).get(CityName)// .toString(); System.out.println( + cityName); String town1 = jo.getJSONObject(address).getJSONObject(Province)// .getJSONArray(City).getJSONObject(0).getJSONArray(town)// .get(0).toString(); System.out.println( + town1); String town2 = jo.getJSONObject(address).getJSONObject(Province)// .getJSONArray(City).getJSONObject(0).getJSONArray(town)// .get(1).toString(); System.out.println( + town2); } }
JSONStringer
->快速构建一个JSON串,并可以写入文件中去基本方法介绍:
JSONStringer是JSONWriter的子类;
JSONStringer一般通过object().key().value().key().value().endObject()进行构造;
JSONString ():构造函数
object()表明开始一个对象,即添加{ ;
endObject()表明结束一个对象,即添加 } ;
array()表明开始一个数组,即添加一个 [ ;
endArray()表明结束一个数组,即添加一个 ] ;
key()表示添加一个key;
value()表示添加一个value;
注意:通过该方法,Object之间的“,”以及Array数组各个value之间的“,”都是自动添加的
简单案例:
package javaJsonAPI; import org.json.JSONStringer; public class JsonArrayTest { /* * 表示我没有在官网http://www.json.org/里面找到json的jar包 ,这里我的解决 方案是下载官网提供的源文件*.java * 项目里面建了一个名为org.json的package,把源文件都导入进去了,其实和在classpath中导入jar包没有区别 */ public static void main(String args[]) { JSONStringer js = new JSONStringer(); js.array(); js.object(); js.key(name); js.value(hj); js.key(age); js.value(21); js.endObject(); js.object(); js.key(name); js.value(darkrake); js.key(age); js.value(21); js.endObject(); js.endArray(); System.out.println(js.toString()); } }
综合案例:
package javaJsonAPI; import org.json.JSONArray; import org.json.JSONObject; import org.json.JSONStringer; public class JsonArrayTest { /* * 表示我没有在官网http://www.json.org/里面找到json的jar包 ,这里我的解决 方案是下载官网提供的源文件*.java * 项目里面建了一个名为org.json的package,把源文件都导入进去了,其实和在classpath中导入jar包没有区别 */ public static void main(String args[]) { JSONStringer js = new JSONStringer(); // 创建book1 JSONObject book1 = new JSONObject(); book1.put(name, Java); JSONArray ja1 = new JSONArray(); String str1[] = { LiuWANJUN, XXX }; ja1.put(str1); book1.put(author, ja1); book1.put(price, ¥108); // 创建book2 JSONObject book2 = new JSONObject(); book2.put(name, JavaScript); JSONArray ja2 = new JSONArray(); String str2[] = { LiSongFeng, CaoLi }; ja2.put(str2); book2.put(author, ja2); book2.put(price, ¥108); js.object(); js.key(Book); js.array(); js.value(book1); js.value(book2); js.endArray(); js.endObject(); System.out.println(js.toString()); } }
{ Book: [ { author: [ [ LiuWANJUN, XXX ] ], price: ¥108, name: Java }, { author: [ [ LiSongFeng, CaoLi ] ], price: ¥108, name: JavaScript } ] }
转换成XML即为:
<book> LiuWANJUN</author> XXX</author> <price>¥108</price> <name>Java</name> </book> <book> LiSongFeng</author> CaoLi</author> <price>¥108</price> <name>JavaScript</name> </book>
总结:
1.JSON是一种数据交换的格式,在web项目中具有着广泛的应用,尤其是AJAX一步加载数据,往往都是用json格式的数据,而不是传统的XML;2.JSON只有两种结构,Object和Array
3.不知道我写的有没有错,我也是参考了别人的学习方案进行学习和理解的,下周有时间,抽空学习前段JSON的应用吧,这里写的主要是Java后台的操作
相关文章推荐
- Spring MVC打印出mysql语句
- Java 如何有效地避免OOM:善于利用软引用和弱引用
- Spring auto wire(自动装配) 的 五种方式
- 链表反转
- Spring 在 xml配置文件 或 annotation 注解中 运用Spring EL
- 【实例】在java中如何获取xml文件数据
- Spring AOP 中 advice 的四种类型 before after throwing advice around
- Spring 运用 pointcut 和 advisor 对特定的方法进行切面编程
- WIN7 64位下设置了java安全,但还是阻止的问题解决
- Myeclipse2014与maven的友好慰问
- java进阶必备
- Java性能调优工具集锦
- java有参构造函数如何输出
- Java中的深复制与浅复制问题
- 权限解决方案:Spring security3.0.…
- 权限解决方案:Spring Security3.0.…
- Java中的多线程
- SpringMVC:拦截器
- Struts2的邮件校验器正则表达式
- Spring中的工具类