Java如何將String轉(zhuǎn)換成json對(duì)象或json數(shù)組
將String轉(zhuǎn)換成json對(duì)象或json數(shù)組
這里的SmartProejctEquipmentMap 是我自定的一個(gè)實(shí)體類,可以自己定義轉(zhuǎn)換。
注意:json字符串中鍵的名稱要和實(shí)體類一致。
@Test
public void TestJsonObject() {
String datajson = "" +
"[" +
" {" +
" 'projectId':'00a8de32-422c-4b8d-b945-d9cda7f30a31'," +
" 'projectName':'年產(chǎn)片式元器件7.2億個(gè)、高分子固體電容器3.96億個(gè)等項(xiàng)目(標(biāo)準(zhǔn)廠房、連廊A,甲類倉(cāng)庫(kù),辦公樓,宿舍,值班門衛(wèi),垃圾房)'," +
" 'iconType':'yc'," +
" 'eqpType':'yc'," +
" 'sn':'SZWJJJ8MQX20200403134027'," +
" 'name':'測(cè)試第三方01'," +
" 'wkt':'測(cè)試第三方01'," +
" 'sn':'POINT(120.698299 31.272362)'" +
" }," +
" {" +
" 'projectId':'00a8de32-422c-4b8d-b945-d9cda7f30a31'," +
" 'projectName':'測(cè)試項(xiàng)目編號(hào)名稱'," +
" 'iconType':'yc'," +
" 'eqpType':'yc'," +
" 'sn':'FDASDFAFDAFYF89AS6F897DD'," +
" 'name':'揚(yáng)塵設(shè)備001'," +
" 'wkt':'揚(yáng)塵設(shè)備001'," +
" 'sn':'POINT(120.698299 31.272362)'" +
" }" +
"]";
JSONArray jsonArray = JSONArray.parseArray(datajson);
for(int i=0; i<jsonArray.size(); i++) {
JSONObject object = jsonArray.getJSONObject(i);
SmartProejctEquipmentMap myclass = JSONObject.parseObject(object.toJSONString() , SmartProejctEquipmentMap.class);// 將string類型直接封裝成對(duì)象
System.out.println(myclass.toString());
}
字符串轉(zhuǎn)json數(shù)組的解決
前提:當(dāng)需要把一串字符串轉(zhuǎn)成一個(gè)json 數(shù)組 ,并遍歷其中的內(nèi)容時(shí)。
第一步:
首先導(dǎo)入 net.sf.json.JSONArray和net.sf.json.JSONObject 兩個(gè)jar 包
Java:
String str = "[{name:'a',value:'aa'},{name:'b',value:'bb'},{name:'c',value:'cc'},{name:'d',value:'dd'}]" ; ?// 一個(gè)未轉(zhuǎn)化的字符串
JSONArray json = JSONArray.fromObject(str ); // 首先把字符串轉(zhuǎn)成 JSONArray ?對(duì)象
if(json.size()>0){
? for(int i=0;i<json.size();i++){
? ? JSONObject job = json.getJSONObject(i); ?// 遍歷 jsonarray 數(shù)組,把每一個(gè)對(duì)象轉(zhuǎn)成 json 對(duì)象
? ? System.out.println(job.get("name")+"=") ; ?// 得到 每個(gè)對(duì)象中的屬性值
? }
}Js:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<SCRIPT LANGUAGE="JavaScript">
var t="{'firstName': 'cyra', 'lastName': 'richardson', 'address': { 'streetAddress': '1 Microsoft way', 'city': 'Redmond', 'state': 'WA', 'postalCode': 98052 },'phoneNumbers': [ '425-777-7777','206-777-7777' ] }";
var jsonobj=eval('('+t+')');
alert(jsonobj.firstName);
alert(jsonobj.lastName);
var t2="[{name:'zhangsan',age:'24'},{name:'lisi',age:'30'},{name:'wangwu',age:'16'},{name:'tianqi',age:'7'}] ";
var myobj=eval(t2);
for(var i=0;i<myobj.length;i++){
alert(myobj[i].name);
alert(myobj[i].age);
}
var t3="[['<a href=# οnclick=openLink(14113295100,社旗縣國(guó)稅局橋頭稅務(wù)所,14113295100,d6d223892dc94f5bb501d4408a68333d,swjg_dm);>14113295100</a>','社旗縣國(guó)稅局橋頭稅務(wù)所','社旗縣城郊鄉(xiāng)長(zhǎng)江路西段']]";
//通過(guò)eval() 函數(shù)可以將JSON字符串轉(zhuǎn)化為對(duì)象
var obj = eval(t3);
for(var i=0;i<obj.length;i++){
for(var j=0;j<obj[i].length;j++){
alert(obj[i][j]);
}
}
/*
//stringifier 函數(shù)的作用跟 parse 相反, 用來(lái)將一個(gè)js對(duì)象轉(zhuǎn)換為 JSON 文本。
var jsonText = JSON.stringify(obj);
alert(jsonText);
//如果基于安全的考慮的話,最好是使用一個(gè) JSON 解析器。 一個(gè) JSON 解析器將只接受 JSON 文本。所以是更安全的。
var myObject = JSON.parse(myJSONtext, filter);
//可選的 filter 參數(shù)將遍歷每一個(gè)value key 值對(duì), 并進(jìn)行相關(guān)的處理。如:
//如
myData = JSON.parse(text, function (key, value) {
return key.indexOf('date') >= 0 ? new Date(value) : value; });
//stringifier 函數(shù)的作用跟 parse 相反, 用來(lái)將一個(gè)js對(duì)象轉(zhuǎn)換為 JSON 文本。
var myJSONText = JSON.stringifier(myObject);
*/
</SCRIPT>
</HEAD>
<BODY>
</BODY>
</HTML>
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Java對(duì)象轉(zhuǎn)JSON三種常用的方法
- java中對(duì)象和JSON格式的轉(zhuǎn)換方法代碼
- Java中如何使用Gson將對(duì)象轉(zhuǎn)換為JSON字符串
- 如何將Java對(duì)象轉(zhuǎn)換成JSON
- java中對(duì)象轉(zhuǎn)json字符串的幾種常用方式舉例
- java中json和對(duì)象之間相互轉(zhuǎn)換的運(yùn)用
- 詳解JSON與?Java對(duì)象之間的轉(zhuǎn)化
- 如何將Java對(duì)象轉(zhuǎn)換為JSON實(shí)例詳解
- java中對(duì)象轉(zhuǎn)json字符串的三種常用方式
相關(guān)文章
學(xué)習(xí)Java之自定義異常與NullPointerException的處理
有時(shí)候Java自身提供的異常類并不能很好地表達(dá)我們的需求,所以這時(shí)候我們就可以自定義異常,也就是說(shuō),我們可以制造出一個(gè)自己的異常類,這樣就可以拋出或捕獲自己的異常了,本文就給大家詳細(xì)講講Java自定義異常與NullPointerException的處理2023-08-08
SpringBoot結(jié)合FreeMarker視圖渲染的實(shí)現(xiàn)
FreeMarker它允許開發(fā)人員使用模板和數(shù)據(jù)來(lái)生成輸出文本,如HTML網(wǎng)頁(yè)、電子郵件、配置文件和源代碼等,本文主要介紹了SpringBoot結(jié)合FreeMarker視圖渲染的實(shí)現(xiàn),感興趣的可以了解一下2024-03-03
SpringBoot利用jpa連接MySQL數(shù)據(jù)庫(kù)的方法
這篇文章主要介紹了SpringBoot利用jpa連接MySQL數(shù)據(jù)庫(kù)的方法,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-10-10
將字符串?dāng)?shù)字格式化為樣式1,000,000,000的方法
這篇文章主要介紹了將字符串?dāng)?shù)字格式化為樣式1,000,000,000的方法,有需要的朋友可以參考一下2014-01-01
SpringBoot讀取yml文件中配置數(shù)組的2種方法
這篇文章主要介紹了SpringBoot讀取yml文件中配置數(shù)組的2種方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12

