1. 程式人生 > >字串轉json陣列的解決辦法

字串轉json陣列的解決辦法

前提:當需要把一串字串轉成一個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:

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
  2. <HTML>
  3. <HEAD>
  4. <TITLE> New Document </TITLE>
  5. <SCRIPTLANGUAGE="JavaScript">
  6.    var t="{'firstName': 'cyra', 'lastName': 'richardson', 'address': { 'streetAddress': '1 Microsoft way', 'city': 'Redmond', 'state': 'WA', 'postalCode': 98052 },'phoneNumbers': [ '425-777-7777','206-777-7777' ] }"
    ;  
  7.     var jsonobj=eval('('+t+')');  
  8.     alert(jsonobj.firstName);  
  9.     alert(jsonobj.lastName);  
  10. var t2="[{name:'zhangsan',age:'24'},{name:'lisi',age:'30'},{name:'wangwu',age:'16'},{name:'tianqi',age:'7'}] ";  
  11. var myobj=eval(t2);  
  12. for(var i=0;i<myobj.length;i++){  
  13.    alert(myobj[i].name);  
  14.    alert(myobj[i].age);  
  15. }  
  16. var t3="[['<a href=# onclick=openLink(14113295100,社旗縣國稅局橋頭稅務所,14113295100,d6d223892dc94f5bb501d4408a68333d,swjg_dm);>14113295100</a>','社旗縣國稅局橋頭稅務所','社旗縣城郊鄉長江路西段']]";  
  17. //通過eval() 函式可以將JSON字串轉化為物件  
  18. var obj = eval(t3);  
  19. for(var i=0;i<obj.length;i++){  
  20.    for(var j=0;j<obj[i].length;j++){  
  21. alert(obj[i][j]);  
  22.    }  
  23. }  
  24. /*  
  25. //stringifier 函式的作用跟 parse 相反, 用來將一個js物件轉換為 JSON 文字。  
  26. var jsonText = JSON.stringify(obj);  
  27. alert(jsonText);  
  28. //如果基於安全的考慮的話,最好是使用一個 JSON 解析器。 一個 JSON 解析器將只接受 JSON 文字。所以是更安全的。  
  29. var myObject = JSON.parse(myJSONtext, filter);    
  30. //可選的 filter 引數將遍歷每一個value key 值對, 並進行相關的處理。如:  
  31. //如  
  32. myData = JSON.parse(text, function (key, value) {         
  33. return key.indexOf('date') >= 0 ? new Date(value) : value;    });  
  34. //stringifier 函式的作用跟 parse 相反, 用來將一個js物件轉換為 JSON 文字。  
  35. var myJSONText = JSON.stringifier(myObject);  
  36. */  
  37. </SCRIPT>
  38. </HEAD>
  39. <BODY>
  40. </BODY>
  41. </HTML>