㈠ 為什麼要把json轉換成map, 有的時候為什麼把map轉換成json 請大蝦指教啊,急!!!
我們在後台可以使用map來處理對象和數據,然後map轉化成json傳遞到前台,主要是因為json中即保存了對象又保存了List,就是那種對象和list是交叉的那種,我們需要用到map。轉成json之後我們就可以傳遞到前台,然後進行處理。json轉化成map是因為有些json字元串或者文件我們要將它讀取成map好在後台進行處理。
㈡ java 將一個String 形式的json轉化成Map,比如"{\"a\":\"1\",\"b\
將一個String 形式的轉化成Map的Java程序如下:
importjava.util.HashMap;
importjava.util.Iterator;
importjava.util.Map;
importorg.json.JSONObject;
publicclassFFF{
publicstaticvoidmain(String[]args){
Strings="{"a":"1","b":2,"c":"2016-5"}";
JSONObjectjso=newJSONObject(s);
Map<String,Object>m=newHashMap<String,Object>();
Iteratorit=jso.keys();
while(it.hasNext()){
Stringkey=(String)it.next();
Objectvalue=jso.get(key);
m.put(key,value);
}
System.out.println(m.toString());
}
}
運行結果:
{a=1, b=2, c=2016-5}
㈢ json字元串怎樣轉換成map
例子如下:
package com.zkn.newlearn.json;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import java.util.Map;
/**
* JSON字元串自動轉換
* Created by zkn on 2016/8/22.
*/
public class JsonToMapTest01 {
public static void main(String[] args){
String str = "{\"0\":\"zhangsan\",\"1\":\"lisi\",\"2\":\"wangwu\",\"3\":\"maliu\"}";
//第一種方式
Map maps = (Map)JSON.parse(str);
System.out.println("這個是用JSON類來解析JSON字元串!!!");
for (Object map : maps.entrySet()){
System.out.println(((Map.Entry)map).getKey()+" " + ((Map.Entry)map).getValue());
}
//第二種方式
Map mapTypes = JSON.parseObject(str);
System.out.println("這個是用JSON類的parseObject來解析JSON字元串!!!");
for (Object obj : mapTypes.keySet()){
System.out.println("key為:"+obj+"值為:"+mapTypes.get(obj));
}
//第三種方式
Map mapType = JSON.parseObject(str,Map.class);
System.out.println("這個是用JSON類,指定解析類型,來解析JSON字元串!!!");
for (Object obj : mapType.keySet()){
System.out.println("key為:"+obj+"值為:"+mapType.get(obj));
}
//第四種方式
/**
* JSONObject是Map介面的一個實現類
*/
Map json = (Map) JSONObject.parse(str);
System.out.println("這個是用JSONObject類的parse方法來解析JSON字元串!!!");
for (Object map : json.entrySet()){
System.out.println(((Map.Entry)map).getKey()+" "+((Map.Entry)map).getValue());
}
//第五種方式
/**
* JSONObject是Map介面的一個實現類
*/
JSONObject jsonObject = JSONObject.parseObject(str);
System.out.println("這個是用JSONObject的parseObject方法來解析JSON字元串!!!");
for (Object map : json.entrySet()){
System.out.println(((Map.Entry)map).getKey()+" "+((Map.Entry)map).getValue());
}
//第六種方式
/**
* JSONObject是Map介面的一個實現類
*/
Map mapObj = JSONObject.parseObject(str,Map.class);
System.out.println("這個是用JSONObject的parseObject方法並執行返回類型來解析JSON字元串!!!");
for (Object map: json.entrySet()){
System.out.println(((Map.Entry)map).getKey()+" "+((Map.Entry)map).getValue());
}
String strArr = "{{\"0\":\"zhangsan\",\"1\":\"lisi\",\"2\":\"wangwu\",\"3\":\"maliu\"}," +
"{\"00\":\"zhangsan\",\"11\":\"lisi\",\"22\":\"wangwu\",\"33\":\"maliu\"}}";
// JSONArray.parse()
System.out.println(json);
}
}
㈣ 如何把map轉成json字元串
1、如圖所示新建一個demo作為測試。
㈤ java怎麼將json文件讀取進來並轉成map
java中解析json文件,需要下載json解析包,用JSONUtil.deserialize()就可以了,範例:
importorg.apache.struts2.json.JSONUtil;
publicclassJsonToJava{
publicstaticvoidmain(String[]args){
try{
Strings=JSONObject.toString();
Objecto=JSONUtil.deserialize(s);
Objecto1=((HashMap)o).get("DATA");//此舉將DATA作為對象,版得到。
Mapmap=(Map)o1;//然後強轉權o1
}catch(Exceptione){
e.printStackTrace(System.out);
}
}
}
㈥ 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);
}
}
㈦ 「JsonObject」如何轉成「Map」
首先,你先確認你的字元串是否是json格式的,如果是json格式,那你可以使用Gson.jar或json-lib-xx-jdk.jar兩個包來自動解析解析。
使用Gson更簡單些,只需要導入一個包就可以,但是他如果使用Object解析到int型的話或自動轉成double型,需要定義一個准確的類來解析,不能直接使用Object。示例:
Gson gson = new Gson();
Map<String, Object> map = new HashMap<String, Object>();
map = gson.fromJson(str, map.getClass());
GSON.jar包的下載地址:http://grepcode.com/snapshot/repo1.maven.org/maven2/com.google.code.gson/gson/2.2.4
使用json-lib包的話需要導入更多的包,需要額外導入commons-lang.jar、ezmorph-1.0.4.jar、commons-logging-1.1.1.jar、commons-collections.jar、commons-beanutils.jar這5個包。解析示例如下:
JSONObject jb = JSONObject.fromObject(str);
Map<String, Object> map = (Map<String, Object>)jb;
如果你的字元串不是json格式,那你就需要自己使用split分割字元串,例如:
String str = "color:red|font:yahei|width:800|height:300";
String[] strs = str.split("\|");
Map<String, String> m = new HashMap<String, String>();
for(String s:strs){
String[] ms = s.split(":");
m.put(ms[0], ms[1]);
}
㈧ JAVA中json字元串如何轉化為map對象獲取數據
我們需要先把json字元串轉化為net.sf.json.JSONObject對象,java中這樣就可以完成json字元串到Map的轉換了。