A. 如何將Map轉成jsON
在Java開發中,將Map數據結構轉換成JSON對象是常見的需求,這里我們將介紹兩種常用的庫,阿里巴巴Fastjson和Google的Gson,以及它們在Map與JSON之間的轉換操作。
1. 阿里巴巴Fastjson
首先,使用Fastjson庫進行轉換。創建一個Map實例並添加鍵值對,然後輕松將Map轉換為JSONObject:
Map map = new HashMap>();
map.put("a", "a"); map.put("b", "123");
JSONObject json = new JSONObject(map);
同樣,將Map轉換為String也十分簡便:
Map map = new HashMap>();
map.put("a", "b");
String jsonString = JSONObject.toJSONString(map); // 輸出: {"a": "b"}
2. Google Gson
使用Gson庫,轉換過程如下:
// Maven坐標
com.google.code.gson
gson
2.3.1
將Map轉換為JSON:
Map map = new HashMap>();
map.put("a", "aaa");
map.put("b", "bbb");
map.put("c", "ccc");
String jsonString = new Gson().toJson(map); // 輸出: {"a": "aaa", "b": "bbb", "c": "ccc"}
將JSON轉換回Map:
Map map1 = new Gson().fromJson(jsonString, Map.class);
System.out.println(map1.get("a")); // 輸出: "aaa"
處理復雜對象
當Map中包含嵌套的Map或對象時,如Bar類實例,Fastjson提供了更詳細的序列化:
Map nestedMap = ...; // 填充Bar對象
String nestedJson = JSON.toJSONString(nestedMap, true); // 輸出包含對象屬性的JSON
同樣,從JSON解析回復雜的Map:
Map nestedMap1 = JSON.parseObject(json, Map.class);
for (String key : nestedMap1.keySet()) {
System.out.println(key + ": " + nestedMap1.get(key).toString());
}
總結
無論是Fastjson還是Gson,都能方便地在Map和JSON之間進行轉換。選擇哪種庫取決於項目的需求和偏好。在實際應用中,記得在Maven項目中添加相應的依賴,確保JSON轉換的順利進行。
B. 如何將數據實體轉換為 JSON 字元串
<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN">
<HTML>
<HEAD>
<TITLE>NewDocument</TITLE>
<SCRIPTLANGUAGE="JavaScript">
var
t="{'firstName':'cyra','lastName':'richardson','address':{
'streetAddress':'1Microsoftway','city':'Redmond','state':'WA',
'postalCode':98052},'phoneNumbers':['425-777-7777','206-777-7777']
}";
varjsonobj=eval('('+t+')');
alert(jsonobj.firstName);
alert(jsonobj.lastName);
vart2="[{name:'zhangsan',age:'24'},{name:'lisi',age:'30'},{name:'wangwu',age:'16'},{name:'tianqi',age:'7'}]";
varmyobj=eval(t2);
for(vari=0;i<myobj.length;i++){
alert(myobj[i].name);
alert(myobj[i].age);
}
var
t3="[['<ahref=#
onclick=openLink(14113295100,社旗縣國稅局橋頭稅務
所,14113295100,,swjg_dm);>14113295100</a>','
社旗縣國稅局橋頭稅務所','社旗縣城郊鄉長江路西段']]";
//通過eval()函數可以將JSON字元串轉化為對象
varobj=eval(t3);
for(vari=0;i<obj.length;i++){
for(varj=0;j<obj[i].length;j++){
alert(obj[i][j]);
}
}
/*
//stringifier函數的作用跟parse相反,用來將一個js對象轉換為JSON文本。
varjsonText=JSON.stringify(obj);
alert(jsonText);
//如果基於安全的考慮的話,最好是使用一個JSON解析器。一個JSON解析器將只接受JSON文本。所以是更安全的。
varmyObject=JSON.parse(myJSONtext,filter);
//可選的filter參數將遍歷每一個valuekey值對,並進行相關的處理。如:
//如
myData=JSON.parse(text,function(key,value){
returnkey.indexOf('date')>=0?newDate(value):value;});
//stringifier函數的作用跟parse相反,用來將一個js對象轉換為JSON文本。
varmyJSONText=JSON.stringifier(myObject);
*/
</SCRIPT>
</HEAD>
<BODY>
</BODY>
</HTML>
示例
C. 瀏覽器怎麼用get方式傳遞json數組
get請求直接在瀏覽器地址欄輸完請求地址後加一個英文問號然後接參數名、等號、參數按回車就可以發送get
D. js怎樣生成json的數據
1、按照描述,題主是想將多條數據記錄提交到服務端,同時服務端將數據插入到資料庫。那麼思路是將多條數據存在數組中,調用post方法的介面傳入後端。
2、方法如下:
var sendData = [];
sendData.push({name:'david',age:'20'});
sendData.push({name:'peter',age:'23'});
2、jquery中post與get的區別:
1) $.get() 方法使用GET方法來進行非同步請求的。$.post() 方法使用POST方法來 進行非同步請求的。
2)get請求會將參數跟在URL後進行傳遞,而POST請求則是作為HTTP消息的實體 內容發送給Web伺服器的,這種傳遞是對用戶不可見的。
3) get方式傳輸的數據大小不能超過2KB 而POST要大的多。
4)GET 方式請求的數據會被瀏覽器緩存起來,因此有安全問題。