首页 > 编程语言 > 详细

Java 中使用JSON

时间:2014-11-18 02:23:24      阅读:166      评论:0      收藏:0      [点我收藏+]

一、JSON介绍


JSON(JavaScript Object Notation),类似于XML,是一种数据交换格式,比如JAVA产生了一个数据想要给JavaScript,则除了利用XML外,还可以利用JSON;

JSON有两种数据结构,也就是说所有的JSON对象都是要以这些形式表示;
(1)Map,也称为对象;{....}
(2)Array;[......]

1.Map


简单的说就是Java中的Map,名称-值对的形式给出,名称和值之间用“:”隔开,两个Map之间用“,”隔开,一般表示形式如下:
{‘key1‘:‘value1‘,‘key2‘:‘value2‘}

2.Array


就是普通意义上的数组,一般形式如下:
[‘arr1‘,‘arr2‘,‘arr3‘];

总结:

(1)JSON的数据结构只有两种;
(2)可以嵌套表示,比如Array中可以嵌套Object等;
(3)记住:Object是以{}表示,Array是以[  ]表示;
详细的介绍可以参考官网,上面有很直观的图形化的类型的解释。


二、在JAVA中使用JSON


其中,在接口的访问和数据的传输方面使用的比较多的是使用JSON对象来操作格式化数据:在服务器端采用JSON字符串来传递数据并在WEB前端或者Android客户端使用JSON来解析接收到的数据。
首先,在JAVA中使用JSON需要引入 org.json 包, 并在程序中引入相应的JSON类:
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

其次,在服务器端的Servlet类中,可以使用如下方法收集数据并生成相应的JSON字符串
  1. //声明一个Hash对象并添加数据
  2.  Map params = new HashMap();
  3.  
  4.  params.put("username", username);
  5.  params.put("user_json", user);
  6.  
  7.  //声明JSONArray对象并输入JSON字符串
  8.  JSONArray array = JSONArray.fromObject(params);
  9.  put.println(array.toString());

在WEB前端可以通过javascript直接对JSON字符串进行解析,在Android客户端的话,需要使用JSON类来解析字符串:
  1. //@description: 根据接收到的JSON字符串来解析字符串中所包含的数据和数据对象
  2.  
  3.  //接收到的JSON字符串
  4.  String result = "[{\"username\": \"your name\", \"user_json\": {\"username\": \"your name\", \"nickname\": \"your nickname\"}}]";
  5.  
  6.  //根据字符串生成JSON对象
  7.  JSONArray resultArray = new JSONArray(result);
  8.  JSONObject resultObj = resultArray.optJSONObject(0);
  9.  
  10.  //获取数据项
  11.  String username = resultObj.getString("username");
  12.  
  13.  //获取数据对象
  14.  JSONObject user = resultObj.getJSONObject("user_json");
  15.  String nickname = user.getString("nickname");

详细用法,参考官方的文档 http://www.json.org/javadoc/org/json/package-tree.html

Class Hierarchy

Interface Hierarchy

Java 中使用JSON

原文:http://blog.chinaunix.net/uid-608135-id-4622085.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!