Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2454210
  • 博文数量: 328
  • 博客积分: 4302
  • 博客等级: 上校
  • 技术积分: 5486
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-01 11:14
个人简介

悲剧,绝对的悲剧,悲剧中的悲剧。

文章分类

全部博文(328)

文章存档

2017年(6)

2016年(18)

2015年(28)

2014年(73)

2013年(62)

2012年(58)

2011年(55)

2010年(28)

分类: Java

2014-11-14 15:16:22

一、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");

详细用法,参考官方的文档 

Class Hierarchy

  • java.lang.Object
    • org.json.
    • org.json.
    • org.json.
    • org.json.
    • org.json.
    • org.json.
    • org.json.
    • org.json.
      • org.json.
      • org.json.
    • org.json.
      • org.json.
    • java.lang.Throwable (implements java.io.Serializable)
      • java.lang.Exception
        • org.json.
    • org.json.

Interface Hierarchy

  • org.json.
阅读(8410) | 评论(0) | 转发(2) |
给主人留下些什么吧!~~