當前位置:首頁 » 安卓系統 » androidmaptojson

androidmaptojson

發布時間: 2023-03-27 16:13:10

A. 安卓Json --JSONArray --Map 類型轉換

1.JSONArray 轉 Map。先將JSAONArray 轉為 string類型的Json字元串,然後利用Gson將String類型的JSON字元串轉為對應的輸出類型。

2.java中json轉Map,jsonArray轉List集合,List集合轉json

B. android如何使用intent的傳輸一個ArrayList<Map<String,Node>>類型的對象。

這種數據不建議使用intent去傳,太復雜了,用bundle的話數據得有多少、、、、 建議在自己的程序裡面加靜態變數等於 該 ArrayList<Map<String,Node>> ,或者實現一個非靜態變數的 get 和 Set方法 ,這樣在其他地方可以直接調用。

C. 安卓sp怎麼存儲 JSONObject

給你一個工具類,它們都可以相互轉化:
你的解決方案:1.先把object轉化為json字元串,然後用sp保存字元串即可.
如果要反序列化,先通過sp獲取json字元串,再將字元串轉化為object;
下面的方法可直接調用,需要導入谷歌的gson包.

public class JsonUtil {

/**
* 把一個map變成json字元串
* @param map
* @return
*/
public static String parseMapToJson(Map<?, ?> map) {
try {
Gson gson = new Gson();
return gson.toJson(map);
} catch (Exception e) {
}
return null;
}

/**
* 對象轉換成json字元串
* @param obj
* @return
*/
public static String toJson(Object obj) {
Gson gson = new Gson();
return gson.toJson(obj);
}

/**
* 把一個json字元串變成對象
* @param json
* @param cls
* @return
*/
public static <T> T parseJsonToBean(String json, Class<T> cls) {
Gson gson = new Gson();
T t = null;
try {
t = gson.fromJson(json, cls);
} catch (Exception e) {
}
return t;
}

/**
* 把json字元串變成map
* @param json
* @return
*/
public static HashMap<String, Object> parseJsonToMap(String json) {
Gson gson = new Gson();
Type type = new TypeToken<HashMap<String, Object>>() {
}.getType();
HashMap<String, Object> map = null;
try {
map = gson.fromJson(json, type);
} catch (Exception e) {
}
return map;
}

/**
* 把json字元串變成集合
* params: new TypeToken<List<yourbean>>(){}.getType(),
*
* @param json
* @param type new TypeToken<List<yourbean>>(){}.getType()
* @return
*/
public static List<?> parseJsonToList(String json, Type type) {
Gson gson = new Gson();
List<?> list = gson.fromJson(json, type);
return list;
}

/**
*
* 獲取json串中某個欄位的值,注意,只能獲取同一層級的value
*
* @param json
* @param key
* @return
*/
public static String getFieldValue(String json, String key) {
if (TextUtils.isEmpty(json))
return null;
if (!json.contains(key))
return "";
JSONObject jsonObject = null;
String value = null;
try {
jsonObject = new JSONObject(json);
value = jsonObject.getString(key);
} catch (JSONException e) {
e.printStackTrace();
}
return value;
}

}

D. android 在伺服器端生成json格式數據,在客戶端怎麼解析

1、生成JSON格式數據,有對應的後台類處理,如果你是做Android開發,後台提供獲取數據的介面


2、客戶端解決:

JSONArrayjsonArr=newJSONArray(json);
for(inti=0;i<jsonArr.length();i++){
JSONObjectjsonObj=jsonArr.getJSONObject(i);
booleanisChild=jsonObj.has("childrenNodes");
AreaBeanbean=newAreaBean(jsonObj.getString("id"),
jsonObj.getString("parentId"),
jsonObj.getString("name"));
mList.add(bean);
if(isChild){
mchildNodesList.add(jsonObj.getString("childrenNodes"));
}else{
mchildNodesList.add(null);
}
}

E. android怎麼把json轉換為hashmap

在android中把json轉換為hashmap,代碼如下:
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;

import net.sf.json.JSONArray;
import net.sf.json.JSONException;
import net.sf.json.JSONObject;

import com.wideyou.model.ExpressOrder;
import com.wideyou.warehouse.model.Storage;

public class HelperFunction {
public ExpressOrder ExpressOrderClassCast(JSONObject reserJson){
ExpressOrder expressOrder=new ExpressOrder();
expressOrder.setCid(Integer.parseInt(reserJson.getString("userId")));
expressOrder.setSendPerson(reserJson.getString("sendPerson"));
expressOrder.setSendPhone(reserJson.getString("sendPhone"));
expressOrder.setSendAddress(reserJson.getString("sendAddress"));
expressOrder.setBeginAddress(reserJson.getString("beginAddress"));
expressOrder.setOtherDes(reserJson.getString("otherDes"));
expressOrder.setEndAddress(reserJson.getString("endAddress"));
expressOrder.setReservPerson(reserJson.getString("reservPerson"));
expressOrder.setReservPhone(reserJson.getString("reservPhone"));
expressOrder.setReservAddress(reserJson.getString("reservAddress"));
expressOrder.setPostCode(reserJson.getString("reservAddress"));
expressOrder.setPayId(Integer.parseInt(reserJson.getString("payId")));
return expressOrder;
}

public Storage StorageClassCast(JSONObject reserJson){
Storage storage=new Storage();
storage.setSname(reserJson.getString("sname"));
storage.setCount(Integer.parseInt(reserJson.getString("count")));
return storage;
}

public static int getCid(JSONObject reserJson, boolean isConsumer){
if(isConsumer){
return Integer.parseInt(reserJson.getString("userId"));
}else{
return Integer.parseInt(reserJson.getString("memberId"));
}
}
//map轉換為json字元串
public static String hashMapToJson(HashMap map) {
String string = "{";
for (Iterator it = map.entrySet().iterator(); it.hasNext();) {
Entry e = (Entry) it.next();
string += "'" + e.getKey() + "':";
string += "'" + e.getValue() + "',";
}
string = string.substring(0, string.lastIndexOf(","));
string += "}";
return string;
}

public static void JsonObject2HashMap(JSONObject jo, List> rstList) {
for (Iterator keys = jo.keys(); keys.hasNext();) {
try {
String key1 = keys.next();
System.out.println("key1---" + key1 + "------" + jo.get(key1)
+ (jo.get(key1) instanceof JSONObject) + jo.get(key1)
+ (jo.get(key1) instanceof JSONArray));
if (jo.get(key1) instanceof JSONObject) {

JsonObject2HashMap((JSONObject) jo.get(key1), rstList);
continue;
}
if (jo.get(key1) instanceof JSONArray) {
JsonArray2HashMap((JSONArray) jo.get(key1), rstList);
continue;
}
System.out.println("key1:" + key1 + "----------jo.get(key1):"
+ jo.get(key1));
json2HashMap(key1, jo.get(key1), rstList);

} catch (JSONException e) {
e.printStackTrace();
}
}
}
public static void JsonArray2HashMap(JSONArray joArr,
List> rstList) {
for (int i = 0; i < joArr.size(); i++) {
try {
if (joArr.get(i) instanceof JSONObject) {

JsonObject2HashMap((JSONObject) joArr.get(i), rstList);
continue;
}
if (joArr.get(i) instanceof JSONArray) {

JsonArray2HashMap((JSONArray) joArr.get(i), rstList);
continue;
}
System.out.println("Excepton~~~~~");

} catch (JSONException e) {
e.printStackTrace();
}

}

}
public static void json2HashMap(String key, Object value,
List> rstList) {
HashMap map = new HashMap();
map.put(key, value);
rstList.add(map);
}

}

F. java中將map轉成json時,如何將map中的整型數字在轉成json後,變成字元串,而不是整型。

好像沒有什麼特別的辦法,可能是我才疏學淺,

我知道的兩種方式:

  1. map是鍵值對存在,那麼類型都是固定的,我們可以再申請個map<String ,String>遍歷替換原來的map再轉換成json字元串

  2. 字元串替換,用正則添加雙引號:

publicvoidtestJson(){
Map<String,Integer>map=newHashMap<String,Integer>();
map.put("aaa",111);
Stringjson=JSON.toJSONString(map);
Stringjson1=json.replaceAll(":",":"");
json1=json1.replaceAll("}",""}");
System.out.println(json);
System.out.println(json1);
}

G. android json解析成map格式

先看json數據
之前使用的是gson解析,把 discount 寫成Object格式,但是通過解析之後轉成String類型,成為

這種明顯沒有辦法解析成map集合
使用原始的Json解析,一層一層的找到這個對象,轉成String類型成為

這種情況下就可以了 之後是的解析方法
第一種方法是

第二種是

這樣就可以獲取到map集合了

H. Android Json串中添加轉義符

一:解析普通json

1:不帶轉化字元

格式{"type":"ONLINE_SHIPS","message":{"currentTime":1400077615368,"direction":0,"id":1,"latitude":29.5506,"longitude":106.6466}}

JSONObject jsonObject = new JSONObject(jsonstr).getJSONObject("message");
System.out.println("currentTime:"+jsonObject.get("currentTime"));
System.out.println("direction:"+jsonObject.get("direction"));
System.out.println("latitude:"+jsonObject.get("latitude"));
System.out.println("longitude:"+jsonObject.get("longitude"));

jsonarray
JSONObject jo = ja.getJSONArray("cargoList").getJSONObject(0);

2:帶轉義字元的json格式

{"type":"ONLINE_SHIPS","message":"{\"currentTime\":1400077615368,\"direction\":0,\"id\":1,\"latitude\":29.5506,\"longitude\":106.6466}"}

其實也很簡單,先把它轉化成字元串就可以了

JSONObject jsonObject = new JSONObject(jsonstr);
//先通過字元串的方式得到,轉義字元自然會被轉化掉
String jsonstrtemp = jsonObject.getString("message");
System.out.println("message:"+jsonstrtemp);
jsonObject = new JSONObject(jsonstrtemp);
System.out.println("currentTime:"+jsonObject.get("currentTime"));
System.out.println("direction:"+jsonObject.get("direction"));
System.out.println("latitude:"+jsonObject.get("latitude"));
System.out.println("longitude:"+jsonObject.get("longitude"));

二:遍歷Json對象

JSONObject ports = ja.getJSONObject("ports");
Iterator<String> keys = ports.keys();
while(keys.hasNext()){
String key=keys.next();
String value = ports.getString(key);
}

三:使用Gjson,json與對象相互轉化

使用Gson輕松將java對象轉化為json格式

String json = gson.toJson(Object);//得到json形式的字元串

User user = gson.fromJson(json,User.class);//得到對象

轉化成list
import java.util.List;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.lc.function.Action;
import com.lc.models.Groups;

public class MapSearch {

private void ParseData(String _data)
{
Gson gson = new Gson();
List<Groups> ps = gson.fromJson(_data, new TypeToken<List<Groups>>(){}.getType());
System.out.println(ps.get(0).getGroup_name());
}
}

熱點內容
第一彈視頻緩存 發布:2024-04-18 21:24:08 瀏覽:731
飽和溶液的電極如何配置 發布:2024-04-18 21:15:39 瀏覽:201
ftp網站下載工具 發布:2024-04-18 21:02:45 瀏覽:48
我的世界手游友好的伺服器 發布:2024-04-18 20:57:20 瀏覽:474
php用什麼打開 發布:2024-04-18 20:09:36 瀏覽:732
python訂閱 發布:2024-04-18 20:09:35 瀏覽:533
python開發桌面軟體 發布:2024-04-18 20:09:34 瀏覽:870
我的世界為什麼伺服器比較流暢 發布:2024-04-18 20:05:22 瀏覽:609
上傳到哪了 發布:2024-04-18 19:45:08 瀏覽:317
一觸即發手機軟體復雜腳本 發布:2024-04-18 19:24:29 瀏覽:39