1. 程式人生 > >Android小問題:String轉換Json,以及org.json.JSONObject與org.json.JSONArray相互新增

Android小問題:String轉換Json,以及org.json.JSONObject與org.json.JSONArray相互新增

import org.json.JSONArray;

import org.json.JSONException;

import org.json.JSONObject;

這是Android原生的Json資料解析包,雖然沒有Gson和fastjson好用。

不過它很輕量,並不需要新增別的jar包,可以為應用節省下小部分空間,利弊各有。

專案中有很多跟js進行互動的地方,傳遞資料時發現根本無法使用Object跟List<T>,於是就想到了Json。

Android跟js都把資料轉換成Json字串,傳遞後再各自進行解析。

查了些資料,覺得有幾個地方還挺值得記錄一下。

解析Json就不再多言,遍地都是,隨便查查就能明白,我要說的是資料轉換成Json。

1、把物件轉換成Json字串。

2、把字元陣列轉換成Json字串。

3、把Object陣列轉換成Json字串。

4、在JSONObject中新增Array。

1、把物件轉換成Json字串

JSONObject jsonObject = new JSONObject();
jsonObject.put("id", obj.getId());
jsonObject.put("url", obj.getUrl());
jsonObject.toString();

2、字元陣列轉換成Json字串。
JSONArray jsonArray = new JSONArray();
jsonArray.put(string[0]);
jsonArray.put(string[1]);
jsonArray.put(string[2]);
jsonArray.toString();

3、把Object陣列轉換成Json字串

JSONArray jsonArray = new JSONArray();
    JSONObject jsonObject1 = new JSONObject();
    jsonObject1.put("id", obj.getId());
    jsonObject1.put("url", obj.getUrl());
    JSONObject jsonObject2 = new JSONObject();
    jsonObject2.put("id", obj.getId());
    jsonObject2.put("url", obj.getUrl());
jsonArray.put(jsonObject);
jsonArray.toString();

4、在JSONObject中新增Array
JSONObject jsonObject = new JSONObject();
JSONArray jsonArray = new JSONArray();
    JSONObject obj = new JSONObject();
    obj.put("id", obj.getId());
    obj.put("url", obj.getUrl());
    jsonArray.put(obj);
jsonObject.put("array", jsonArray);
jsonObject.toString();
當然,這些都是最簡單的用法,實際開發中的情況肯定要比這個複雜很多,

不過再怎麼複雜也都是幾種情況相符組合一下而已。

祝君程式碼永無BUG!!!

相關推薦

Android問題String轉換Json以及org.json.JSONObjectorg.json.JSONArray相互新增

import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; 這是Android原生的Js

StringBuffer 和String的區別以及二者之間的轉換(重要)

在編寫驗證碼的時候,用到 session.setAttribute("piccode",stringBuffer);後面要拿出來,要變成string型別。 要用String piccode = request.getSession().getAttribute("piccode")

Android 開發(一)安卓開發環境搭建配置 (Windows和Mac )以及目錄結構介紹

(一)、windows版 一. 開發工具: 1.Android Studio:(http://www.androiddevtools.cn/) 2.Genymotion(虛擬機器):(http://www.genymotion.net/) (二)、Mac版 一

android 實現mqtt訊息推送以及不停斷線重連的問題解決

前段時間專案用到mqtt的訊息推送,整理一下程式碼,程式碼的原型是網上找的,具體哪個地址已經忘記了。 程式碼的實現是新建了一個MyMqttService,全部功能都在裡面實現,包括連伺服器,斷線重連,訂閱訊息,處理訊息,釋出訊息等基本操作。 首先新增依賴: dependencies { &

android開發在Macbook環境android studio 配置git環境

第一步:對專案啟用git管理 這步是將專案納入git管理之下,點選android studio選單欄的VCS後,選擇Enable Version Control Integration. 在彈出的框裡選擇Git 然後可以發現在快捷工具圖示裡面多了兩個版本控制的按鈕,並且

筆記狀態列佔位以及隱藏5.0+半透明背景加在非全屏oncreate中全屏切非全屏不抖動。

public void initStatusBar() { StatusBarUtil.setLightMode(this); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { this.g

Android筆記String.format()的詳細用法

一直對String.format不瞭解,而且也記不住那麼多,記錄一下以後查起來方便 1 佔位符 1.1 單個佔位符 String s = String.format("Hello %s,Welcome

Android讀寫鎖的應用以及最佳的磁碟快取設計

前言 相信磁碟快取在絕大部分的app上都有應用,相對於資料庫快取來說,可以不要注重於快取的管理,比較開放和隨意。 再加上jakewharton早年間釋出的disklrucache框架,讓我們使用磁碟快取更加簡單,效率上和資料庫快取也拉進了一步,以後有時間我在加上disklrucache的快取解讀。

YUI事件自定義事件以及這幾天對javascript程式設計的認識

程式碼 <script type="text/javascript"> YUI().use('event-custom','node', function(Y) { //應用event-custom模組 function Connector(url) {

Android 5.X Activity過渡動畫以及漂亮的共享元素效果

曾經的Android在Activity進行跳轉的時候,只是非常生硬的進行切換,即使使用overPendingtransition(int inId,int outId)這個方法來給Activity增加一些切換動畫效果也很是差強人意。而在Android 5.X中,

android中屬性動畫的bug以及ViewCompat

ViewCompat這個類,是andorid對於動畫類操作的相容類,今天寫了一個側拉框,出現的一個bug    今天一不小心遇見一個bug,這個bug如下 正常情況下慢慢畫動畫可以用,但是快速化,動畫就停止了, 今天先貼程式碼,明天貼圖 final CycleInte

Android實現圖片 高斯模糊以及圖片映象 翻轉。

好久沒寫部落格,發現不止手癢,,原來不學習還是會頹廢的….. 哎….. 速速找了網上比較感興趣的功能,,看著前人大神門的方法實現,方便自己也方便別人: 上圖: 程式碼: MainActivity.class package com.hero.

無線客戶端框架設計(1)前言、目錄以及一些念念碎

接下來要說的一個系列,是一個完整的App應用所需要的企業級框架設計,是我這2年來在無線客戶端這個領域摸爬滾打的,總結沉澱的心得體會,中途吃了很多虧,走過很多彎路,加了很多班,一次又一次的重構,不斷的學習,才知道,哦,原來iOS要這麼做,原來Android要那麼做,然後回過頭來再看看我最熟悉的WP,哦,原來WP

List轉換StringString轉換ListMap轉換StringString轉換Map之間的轉換

/** * 定義分割常量 (#在集合中的含義是每個元素的分割,|主要用於map型別的集合用於key與value中的分割) */ private static final String SEP1 = "#"; private static final S

Android問題String types not allowed (at 'layout_gravity' with value 'top/right').

android:layout_gravity="top/right"出錯的是這一句。實際上應該是:android:layout_gravity="top|right",這裡的top和right的關係是

mac白入門教程配置以及一些好用的tips推薦 (主要針對開發人員)

Mac&macOS簡介 App Store:蘋果電腦軟體商店 iTunes:在 Mac 上管理 iPhone 的利器 iTunes Store:購買軟體和數字產品 Apple Store:蘋果在官網和實體零

Android整理SQlite資料庫的使用以及通過listView顯示資料

前言:上個月與同學一起做了一個簡單的Android應用,這段時間正好沒有很多事情所以趁熱整理一下學習到的知識,剛開始學習Android還有很多不懂的地方,繼續努力吧! 作業中需要用到資料庫,當然首選Android集成了的SQLite資料庫。 直接使用資料庫可以這樣:

Android筆記Activity的生命週期以及啟動模式

Activity生命週期 activity的生命週期: onCreate        onStart           onRestart        onResume       onPaus

Android Studio想要事半功倍你需要記住這些快捷鍵

恩,我這個人有個癖好,就是愛收集各種快捷鍵,office,ps一類的快捷鍵收集了好多。原因嘛,還是那句話,工欲善其事,必先利其器。能有事半功倍的辦法,何樂而不為呢? 我這裡只是總結一下經常會