国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

JAVA中使用JSON進行數據傳遞示例

2019-11-26 13:14:07
字體:
來源:轉載
供稿:網友

最近在做一個基于JAVA Servlet的WEB應用以及對應的Anroid應用客戶端的開發工作。

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

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

import org.json.JSONArray;import org.json.JSONException;import org.json.JSONObject;

其次,在服務器端的Servlet類中,可以使用如下方法收集數據并生成相應的JSON字符串

//聲明一個Hash對象并添加數據Map params = new HashMap();params.put("username", username);params.put("user_json", user);//聲明JSONArray對象并輸入JSON字符串JSONArray array = JSONArray.fromObject(params);put.println(array.toString());

在WEB前端可以通過javascript直接對JSON字符串進行解析,在Android客戶端的話,需要使用JSON類來解析字符串:

//@description: 根據接收到的JSON字符串來解析字符串中所包含的數據和數據對象//接收到的JSON字符串String result = "[{/"username/": /"your name/", /"user_json/": {/"username/": /"your name/", /"nickname/": /"your nickname/"}}]";//根據字符串生成JSON對象JSONArray resultArray = new JSONArray(result);JSONObject resultObj = resultArray.optJSONObject(0);//獲取數據項String username = resultObj.getString("username");//獲取數據對象JSONObject user = resultObj.getJSONObject("user_json");String nickname = user.getString("nickname");

 其實,主要就是涉及到以下集中數據類型之間的轉換:

1. String 轉換為JSON對象

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/"" +        "]}";        //轉換成為JSONObject對象    JSONObject jsonObj = new JSONObject(jsonStr);        //從JSONObject對象中獲取數據    JavaBean bean = new JavaBean();        //根據屬性名稱獲取int型數據;    bean.setId(jsonObj.getInt("id"));           //根據屬性名獲取String數據;    bean.setTitle(jsonObj.getString("title"));         //根據屬性名獲取JSONObject類    JSONObject config = jsonObj.getJSONObject("config");    bean.setWidth(config.getInt("width"));    bean.setHeight(config.getInt("height"));        //根據屬性名獲取JSONArray數組    JSONArray data = jsonObj.getJSONArray("data");    for(int index = 0, length = data.length(); index < length; index++) {      //這里在org.json.JSONArray對象中居然沒有找到toArray方法,求各位網友給出解決辦法啊!//      bean.setLanguages(String[]);    }      }}class JavaBean{  private int id ;  private String title;  private int width;  private int height;  private String[] languages;    //這里省略了設置器和訪問器}

2. JSON對象轉換為String字符串

public static void main(String[] args) throws JSONException {        //創建JSONObject對象    JSONObject json = new JSONObject();        //向json中添加數據    json.put("username", "wanglihong");    json.put("height", 12.5);    json.put("age", 24);        //創建JSONArray數組,并將json添加到數組    JSONArray array = new JSONArray();    array.put(json);        //轉換為字符串    String jsonStr = array.toString();        System.out.println(jsonStr);  }

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

3. 集合轉換為JSONArray對象

public static void main(String[] args)throws JSONException{    //初始化ArrayList集合并添加數據    List<String> list = new ArrayList<String>();    list.add("username");    list.add("age");    list.add("sex");        //初始化HashMap集合并添加數組    Map map = new HashMap();    map.put("bookname", "CSS3實戰");    map.put("price", 69.0);        //初始化JSONArray對象,并添加數據    JSONArray array = new JSONArray();    array.put(list);    array.put(map);        //生成的JSON字符串為:[["username","age","sex"],{"price":69,"bookname":"CSS3實戰"}]  }

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 栾川县| 秀山| 黄平县| 霍林郭勒市| 尉犁县| 犍为县| 杨浦区| 横山县| 长岭县| 武穴市| 云南省| 酉阳| 准格尔旗| 茶陵县| 眉山市| 嘉兴市| 乌兰浩特市| 福鼎市| 泰宁县| 武义县| 开平市| 连云港市| 义乌市| 孝昌县| 乌兰县| 涞源县| 上栗县| 宜丰县| 瑞昌市| 漳平市| 营口市| 昭苏县| 定州市| 雷山县| 云梦县| 霸州市| 郯城县| 南和县| 新田县| 宁晋县| 云和县|