Chinaunix首页 | 论坛 | 博客
  • 博客访问: 241759
  • 博文数量: 43
  • 博客积分: 391
  • 博客等级: 二等列兵
  • 技术积分: 352
  • 用 户 组: 普通用户
  • 注册时间: 2012-05-17 11:29
个人简介

现在的我,不埋怨谁,不嘲笑谁,也不羡慕谁。阳光下灿烂,风雨中奔跑,做自己的梦,走自己的路。一切都好,真的,都很好。

文章分类

全部博文(43)

文章存档

2018年(2)

2017年(1)

2015年(2)

2014年(27)

2013年(1)

2012年(10)

我的朋友

分类: Java

2014-11-18 22:39:18

原文地址:Java 中使用JSON 作者:huaius

一、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.
阅读(857) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~