android的json解析方式,Android解析JSON方式
JSON數據格式的定義:
JSON的全稱是:JavaScript Object Notation,是一種輕量級的數據交換格式。它構建于兩種結構:
1、"名稱/值" 對的集合(a collection of name / value pairs)。不同的語言中,它被理解為對象(Object),記錄(Record),結構(struct),字典(Dictionary),哈希表(HashTable),有鍵列表(Keyed list),或者關聯數組(Associative array)。
2、值的有序列表(An ordered list of values)。在大部分語言中,它被理解為數組(array)。
JSON數據格式的特點:
JSON對象時一個無序的" '名稱/值' 對"的集合,一個對象以“{”(左括號)開始, 以"}"(右括號)結束,每個"名稱"后跟一個":"(冒號),名稱/值 對之間使用","(逗號)分隔。
如:
{
"name":"jackson",
"age":100
}
稍微復雜一點的情況,數組是值的有序集合,一個數組以“[”(左中括號)開始,以"]"(右中括號)結束。值之間使用","(逗號)分隔。
如:
{
"studengs":
[
{"name": "jackson", "age": 100},
{"name": "michael", "age": 51},
]
}
首先,我們搭建一個服務器的工程:JsonProject這個項目,工程目錄結構:
源代碼:
Person.java
package?com.json.domain;
public?class?Person?{
private?int?id;
private?String?name;
private?String?address;
public?Person()?{
super();
}
public?Person(int?id,?String?name,?String?addrss)?{
super();
this.id=id;
this.name=name;
this.address=addrss;
}
public?int?getId()?{
return?id;
}
public?void?setId(int?id)?{
this.id=id;
}
public?String?getName()?{
return?name;
}
public?void?setName(String?name)?{
this.name=name;
}
public?String?getAddress()?{
return?address;
}
public?void?setAddress(String?address)?{
this.address=address;
}
@Override
public?String?toString()?{
return?"Person?[addrss="?+?address?+?",id="?+?id?+?",name="?+?name
+?"]";
}
}
JsonService.java
package?com.json.service;
import?java.util.ArrayList;
import?java.util.HashMap;
import?java.util.List;
import?java.util.Map;
import?com.json.domain.Person;
public?class?JsonService?{
public?JsonService()?{
}
public?Person?getPerson(){
Personperson=newPerson(1001,"jack","上海黃浦區");
return?person;
}
public?ListgetListPerson(){
Listlist=newArrayList();
Personperson1=newPerson(1001,"jack","上海黃浦區");
Personperson2=newPerson(1002,"rose","上海閔行區");
Personperson3=newPerson(1003,"mick","上海黃浦區");
list.add(person1);
list.add(person2);
list.add(person3);
return?list;
}
public?ListgetListString(){
Listlist=newArrayList();
list.add("北京");
list.add("上海");
list.add("湖南");
return?list;
}
public?List>getListMaps(){
List>list=newArrayList>();
Mapmap1=newHashMap();
Mapmap2=newHashMap();
map1.put("id",?1001);
map1.put("name",?"jack");
map1.put("address",?"北京");
map2.put("id",?1001);
map2.put("name",?"rose");
map2.put("address",?"上海");
list.add(map1);
list.add(map2);
return?list;
}
}
JsonServlet.java
package?com.json.servlet;
import?java.io.IOException;
import?java.io.PrintWriter;
import?javax.servlet.ServletException;
import?javax.servlet.http.HttpServlet;
import?javax.servlet.http.HttpServletRequest;
import?javax.servlet.http.HttpServletResponse;
import?com.json.service.JsonService;
import?com.json.tools.JsonTools;
public?class?JsonServlet?extends?HttpServlet?{
private?JsonService?service;
/**
*?Constructor?of?the?object.
*/
public?JsonServlet()?{
super();
}
/**
*?Destruction?of?the?servlet.
*/
public?void?destroy()?{
super.destroy();?//?Just?puts?"destroy"?string?in?log
//?Put?your?code?here
}
/**
*?The?doGet?method?of?the?servlet.
*
*?This?method?is?called?when?a?form?has?its?tag?value?method?equals?to?get.
*
*?@param?request?the?request?send?by?the?client?to?the?server
*?@param?response?the?response?send?by?the?server?to?the?client
*?@throws?ServletException?if?an?error?occurred
*?@throws?IOException?if?an?error?occurred
*/
public?void?doGet(HttpServletRequest?request,?HttpServletResponse?response)
throws?ServletException,?IOException?{
this.doPost(request,?response);
}
/**
*?The?doPost?method?of?the?servlet.
*
*?This?method?is?called?when?a?form?has?its?tag?value?method?equals?to?post.
*
*?@param?request?the?request?send?by?the?client?to?the?server
*?@param?response?the?response?send?by?the?server?to?the?client
*?@throws?ServletException?if?an?error?occurred
*?@throws?IOException?if?an?error?occurred
*/
public?void?doPost(HttpServletRequest?request,?HttpServletResponse?response)
throws?ServletException,?IOException?{
response.setContentType("text/html;charset=utf-8");
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
PrintWriterout=response.getWriter();
StringjsonString="";
Stringaction_flag=request.getParameter("action_flag");
if(action_flag.equals("person")){
jsonString=JsonTools.createJsonString("person",?service.getPerson());
}else?if(action_flag.equals("persons")){
jsonString=JsonTools.createJsonString("persons",?service.getListPerson());
}else?if(action_flag.equals("listString")){
jsonString=JsonTools.createJsonString("listString",?service.getListString());
}else?if(action_flag.equals("listMap")){
jsonString=JsonTools.createJsonString("listMap",?service.getListMaps());
}
out.println(jsonString);
out.flush();
out.close();
}
/**
*?Initialization?of?the?servlet.
*
*?@throws?ServletException?if?an?error?occurs
*/
public?void?init()?throws?ServletException?{
service=newJsonService();
}
}
web.xml中servlet映射
This?is?the?description?of?my?J2EE?component
This?is?the?display?name?of?my?J2EE?component
JsonServlet
com.json.servlet.JsonServlet
JsonServlet
/servlet/JsonServlet
我們通過瀏覽器
訪問地址一:http://wulianghuan-pc:8080/JsonProject/servlet/JsonServlet?action_flag=person
輸出以下結果:
{"persons":{"address":"上海黃浦區","id":1001,"name":"jack"}}
訪問地址二:http://wulianghuan-pc:8080/JsonProject/servlet/JsonServlet?action_flag=persons
輸出以下結果:
{"persons":[{"address":"上海黃浦區","id":1001,"name":"jack"},{"addrss":"上海閔行區","id":1002,"name":"rose"},{"address":"上海黃浦區","id":1003,"name":"mick"}]}
訪問地址三:http://wulianghuan-pc:8080/JsonProject/servlet/JsonServlet?action_flag=listString
輸出以下結果:
{"persons":["北京","上海","湖南"]}
訪問地址四:http://wulianghuan-pc:8080/JsonProject/servlet/JsonServlet?action_flag=listMap
總結
以上是生活随笔為你收集整理的android的json解析方式,Android解析JSON方式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 代码android点击效果,GitHub
- 下一篇: 在running android lin