使用GOOGLE GSON方式解析JSON格式的數據。 javascript
引入gson-1.4.jar包。 java
參考網站:http://code.google.com/p/google-gson/ json
對象轉換爲字符串 服務器
普通解析方式: 網站
class User { ui private Long id; google private String name; spa private String pwd; code
//getter and setter 對象 }
User user = new User(); user.setId(1001L); user.setName("zhenlging"); user.setPwd("abc");
//解析普通對象 Gson gson = new Gson(); String userStr = gson.toJson(user); System.out.println(userStr); //輸出結果:{"id":1001,"name":"zhenlging","pwd":"abc"}
//解析Map對象 Map<String, User> userMap = new HashMap<String,User>(); userMap.put("user1", user); String sUserMap = gson.toJson(userMap, new TypeToken<Map<String,User>>(){}.getType()); System.out.println(sUserMap); //輸出結果:{"user1":{"id":1001,"name":"zhengling","pwd":"aaa"},"user2":{"id": 1002,"name":"yangyang","pwd":"bbb"}}
//解析List對象 List<User> list = new ArrayList<User>(); list.add(user1); list.add(user2); String sUserList = gson.toJson(list, new TypeToken<List<User>>(){}.getType()); System.out.println(sUserList); //輸出結果:[{"id":1001,"name":"zhengling","pwd":"aaa"},{"id":1002, "name":"yangyang","pwd":"bbb"}] |
@Expose註解的使用:
class User { @Expose private Long id; private String name; @Expose private String pwd;
//getter and setter }
//解析代碼 User user = new User(); user.setId(1001L); user.setName("zhenlging"); user.setPwd("abc");
GsonBuilder builder = new GsonBuilder(); //不轉換沒有@Expose註解的字段 builder.excludeFieldsWithoutExposeAnnotation(); Gson gson = builder.create();
String userStr = gson.toJson(user); System.out.println(userStr); //輸出結果:{"id":1001,"pwd":"abc"} |
字符串轉換爲對象
Gson gson = new Gson();
//普通對象 String str1 = "{"id":1001,"name":"zhenlging","pwd":"abc"}"; User user = gson.fromJson(str1, User.class); System.out.println("USER_ID: " + user.getId() + ",USER_NAME:" + user.getName() + ",USER_PWD:"+ user.getPwd()); //輸出結果:USER_ID: 1001,USER_NAME:zhenlging,USER_PWD:abc
//Map對象 String str2 = "{"user1":{"id":1001,"name":"zhengling","pwd":"aaa"},"user2":" + "{"id":1002,"name":"yangyang","pwd":"bbb"}}"; Map<String,User> userMap = gson.fromJson(str2, new TypeToken<Map<String, User>>(){}.getType()); System.out.println(userMap.get("user1").getName()); //輸出結果:zhengling
//List對象 String str3 = "[{"id":1001,"name":"zhengling","pwd":"aaa"},{"id":1002,"name"" + ":"yangyang","pwd":"bbb"}]"; List<User> userList = gson.fromJson(str3, new TypeToken<List<User>>(){}.getType()); System.out.println(userList.get(1).getName()); //輸出結果:yangyang |
使用json_sans_eval方式解析。
引入json-minified.js文件。
參考網站:http://code.google.com/p/json-sans-eval/
<script type="text/javascript"> var myJson = '{ "x": "Hello, World!", "y": [1, 2, 3] }'; var myJsonObj = jsonParse(myJson); document.write(myJsonObj.x+"<br>"); for(var k in myJsonObj) { document.write(k + '=' + myJsonObj[k]+"<br>"); } var y = myJsonObj.y; for(var i in y){ document.write(y[i]+"<br>"); } </script>
輸出結果: Hello, World! x=Hello, World! y=1,2,3 1 2 3 |