前提:當需要把一串字符串轉成一個json 數組 ,並遍歷其中的內容時。
第一步:首先導入 net.sf.json.JSONArray和net.sf.json.JSONObject 兩個jar 包
Java:
String str = "[{name:'a',value:'aa'},{name:'b',value:'bb'},{name:'c',value:'cc'},{name:'d',value:'dd'}]" ; // 一個未轉化的字符串
JSONArray json = JSONArray.fromObject(str ); // 首先把字符串轉成 JSONArray 對象
if(json.size()>0){
for(int i=0;i<json.size();i++){
JSONObject job = json.getJSONObject(i); // 遍歷 jsonarray 數組,把每一個對象轉成 json 對象
System.out.println(job.get("name")+"=") ; // 得到 每個對象中的屬性值
}
}
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,社旗縣國稅局橋頭稅務所,14113295100,d6d223892dc94f5bb501d4408a68333d,swjg_dm);>14113295100</a>','社旗縣國稅局橋頭稅務所','社旗縣城郊鄉長江路西段']]";
- //通過eval() 函數可以將JSON字符串轉化爲對象
- 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 函數的作用跟 parse 相反, 用來將一個js對象轉換爲 JSON 文本。
- var jsonText = JSON.stringify(obj);
- alert(jsonText);
- //如果基於安全的考慮的話,最好是使用一個 JSON 解析器。 一個 JSON 解析器將只接受 JSON 文本。所以是更安全的。
- var myObject = JSON.parse(myJSONtext, filter);
- //可選的 filter 參數將遍歷每一個value key 值對, 並進行相關的處理。如:
- //如
- myData = JSON.parse(text, function (key, value) {
- return key.indexOf('date') >= 0 ? new Date(value) : value; });
- //stringifier 函數的作用跟 parse 相反, 用來將一個js對象轉換爲 JSON 文本。
- var myJSONText = JSON.stringifier(myObject);
- */
- </SCRIPT>
- </HEAD>
- <BODY>
- </BODY>
- </HTML>