国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - Java教程 - JAVA中使用JSON進(jìn)行數(shù)據(jù)傳遞示例

JAVA中使用JSON進(jìn)行數(shù)據(jù)傳遞示例

2020-07-28 14:20轉(zhuǎn)載黑夜的白雪 Java教程

本篇文章主要介紹了JAVA中使用JSON進(jìn)行數(shù)據(jù)傳遞示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

最近在做一個(gè)基于JAVA Servlet的WEB應(yīng)用以及對(duì)應(yīng)的Anroid應(yīng)用客戶端的開(kāi)發(fā)工作。

其中,在接口的訪問(wèn)和數(shù)據(jù)的傳輸方面使用的比較多的是使用JSON對(duì)象來(lái)操作格式化數(shù)據(jù):在服務(wù)器端采用JSON字符串來(lái)傳遞數(shù)據(jù)并在WEB前端或者Android客戶端使用JSON來(lái)解析接收到的數(shù)據(jù)。

首先,在JAVA中使用JSON需要引入 org.json 包, 并在程序中引入相應(yīng)的JSON類:

?
1
2
3
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

其次,在服務(wù)器端的Servlet類中,可以使用如下方法收集數(shù)據(jù)并生成相應(yīng)的JSON字符串

?
1
2
3
4
5
6
7
8
9
//聲明一個(gè)Hash對(duì)象并添加數(shù)據(jù)
Map params = new HashMap();
 
params.put("username", username);
params.put("user_json", user);
 
//聲明JSONArray對(duì)象并輸入JSON字符串
JSONArray array = JSONArray.fromObject(params);
put.println(array.toString());

在WEB前端可以通過(guò)javascript直接對(duì)JSON字符串進(jìn)行解析,在Android客戶端的話,需要使用JSON類來(lái)解析字符串:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//@description: 根據(jù)接收到的JSON字符串來(lái)解析字符串中所包含的數(shù)據(jù)和數(shù)據(jù)對(duì)象
 
//接收到的JSON字符串
String result = "[{\"username\": \"your name\", \"user_json\": {\"username\": \"your name\", \"nickname\": \"your nickname\"}}]";
 
//根據(jù)字符串生成JSON對(duì)象
JSONArray resultArray = new JSONArray(result);
JSONObject resultObj = resultArray.optJSONObject(0);
 
//獲取數(shù)據(jù)項(xiàng)
String username = resultObj.getString("username");
 
//獲取數(shù)據(jù)對(duì)象
JSONObject user = resultObj.getJSONObject("user_json");
String nickname = user.getString("nickname");

 其實(shí),主要就是涉及到以下集中數(shù)據(jù)類型之間的轉(zhuǎn)換:

1. String 轉(zhuǎn)換為JSON對(duì)象

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
 
//別忘了添加上JSON包哦!
public class StringToJSON {
  public static void main(String[] args) throws JSONException{
    
    System.out.println("abc");
    //定義JSON字符串
    String jsonStr = "{\"id\": 2," +
        " \"title\": \"json title\", " +
        "\"config\": {" +
          "\"width\": 34," +
          "\"height\": 35," +
        "}, \"data\": [" +
          "\"JAVA\", \"JavaScript\", \"PHP\"" +
        "]}";
    
    //轉(zhuǎn)換成為JSONObject對(duì)象
    JSONObject jsonObj = new JSONObject(jsonStr);
    
    //從JSONObject對(duì)象中獲取數(shù)據(jù)
    JavaBean bean = new JavaBean();
    
    //根據(jù)屬性名稱獲取int型數(shù)據(jù);
    bean.setId(jsonObj.getInt("id"));  
    
    //根據(jù)屬性名獲取String數(shù)據(jù);
    bean.setTitle(jsonObj.getString("title"));
    
    //根據(jù)屬性名獲取JSONObject類
    JSONObject config = jsonObj.getJSONObject("config");
    bean.setWidth(config.getInt("width"));
    bean.setHeight(config.getInt("height"));
    
    //根據(jù)屬性名獲取JSONArray數(shù)組
    JSONArray data = jsonObj.getJSONArray("data");
    for(int index = 0, length = data.length(); index < length; index++) {
      //這里在org.json.JSONArray對(duì)象中居然沒(méi)有找到toArray方法,求各位網(wǎng)友給出解決辦法啊!
//      bean.setLanguages(String[]);
    }   
  }
}
 
class JavaBean{
  private int id ;
  private String title;
  private int width;
  private int height;
  private String[] languages;
 
    //這里省略了設(shè)置器和訪問(wèn)器
}

2. JSON對(duì)象轉(zhuǎn)換為String字符串

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public static void main(String[] args) throws JSONException {
    
    //創(chuàng)建JSONObject對(duì)象
    JSONObject json = new JSONObject();
    
    //向json中添加數(shù)據(jù)
    json.put("username", "wanglihong");
    json.put("height", 12.5);
    json.put("age", 24);
    
    //創(chuàng)建JSONArray數(shù)組,并將json添加到數(shù)組
    JSONArray array = new JSONArray();
    array.put(json);
    
    //轉(zhuǎn)換為字符串
    String jsonStr = array.toString();
    
    System.out.println(jsonStr);
  }

最終輸出結(jié)果為: [{"username":"wanglihong","height":12.5,"age":24}] 

3. 集合轉(zhuǎn)換為JSONArray對(duì)象

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public static void main(String[] args)throws JSONException{
    //初始化ArrayList集合并添加數(shù)據(jù)
    List<String> list = new ArrayList<String>();
    list.add("username");
    list.add("age");
    list.add("sex");
    
    //初始化HashMap集合并添加數(shù)組
    Map map = new HashMap();
    map.put("bookname", "CSS3實(shí)戰(zhàn)");
    map.put("price", 69.0);
    
    //初始化JSONArray對(duì)象,并添加數(shù)據(jù)
    JSONArray array = new JSONArray();
    array.put(list);
    array.put(map);
    
    //生成的JSON字符串為:[["username","age","sex"],{"price":69,"bookname":"CSS3實(shí)戰(zhàn)"}]
  }

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。

原文鏈接:http://www.cnblogs.com/undead/archive/2012/07/18/2594900.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 91精品国产一区二区三区香蕉 | 亚洲一区二区在线播放 | 91在线高清 | 91av电影网| 狠狠躁夜夜躁人人爽天天天天97 | 国产亚洲一区二区三区在线观看 | 正在播放国产精品 | 国产精品无码久久久久 | 日韩精品视频一区二区三区 | 精品国产精品 | 国产精彩视频 | 欧美一级裸体视频 | 国产中文字幕在线 | 欧美日韩高清在线一区 | 伊人操操 | 国产h片在线观看 | 中文字幕一区二区三区日韩精品 | 久久99精品视频 | 超碰97国产精品人人cao | 亚洲久久 | 久久精品视频免费 | 欧美成人免费在线视频 | 久久一级淫片 | 国产精品免费一区 | 四虎永久免费影院 | 亚洲综合自拍 | 国产激情久久久久久 | 羞羞视频网 | a级性生活 | 4438x成人网最大色成网站 | 国产视频1区 | 国产在线第一页 | 爱色av| 四房婷婷 | 日韩小视频 | 秋霞av亚洲一区二区三 | 久久久久久久久久久久久国产 | 久久综合久久综合久久综合 | 国产99久久久精品视频 | 日本精品一区二 | 操久在线|