JSON解析方式 gson

服務器端解析

使用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

相關文章
相關標籤/搜索