解析JSON数据系列1:在网页上显示Json数据
2015-10-10 21:05
639 查看
Json的全称:JavaScriptObjectNotation
Json的两种构建结构:“名称/值”对的集合、值的有序列表。
移动客户端(android和iphone)接收返回的数据和平台无关,平台可以是Java、.net或者php。
移动客户端请求服务器端,一般是采用Json这种轻量级的形式。
JSON的数据格式:
JSON对象是一个无序的“‘名称/值’对”集合。
一个对象以“{”(左括号)开始,“}”(右括号)结束。
每个“名称”后跟一个“:”(冒号);“‘名称/值’对”之间使用“,”(逗号)分隔。
如:{
"name":"jackson",
"age":100
}
数组是值(value)的有序集合。一个数组以“[”(左括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔
如:{
“students”:
[
{"name":"jackson","age":100},
{"name":"michael","age":51}
]
}
这个例子采用的是服务器端:(jsp+servlet)(生成Json的字符串),客户端:解析Json数据。在网页上显示Json的字符串。
整体思路:新建一个web工程,定义一个实体类Person,在里面定义三个字段,定义它的构造函数,get、set方法,toString方法。定义一个JsonService类,在里面定义getPerson方法返回一个Person对象,定义getlistPerson方法返回一个装有Person类型的List对象,定义getListString方法返回一个装有字符串类型的List对象,定义getListMaps方法返回一个装有Map类型的List对象。定义一个JsonTools类,在里面写一个构建Json字符串的方法。定义一个TestJson类,在里面定义main方法,在这个方法中调用createJsonString返回Json对象并输出。定义一个servlet类JsonAction,在里面把doGet方法中的代码改为this.doPost(request,
response),在doPost方法中添加请求和接收的方式,调用createJsonString返回Json对象并输出。
Person.java文件:
JsonService.java文件:
JsonTools.java文件:
JsonAction.java文件:
Json的两种构建结构:“名称/值”对的集合、值的有序列表。
移动客户端(android和iphone)接收返回的数据和平台无关,平台可以是Java、.net或者php。
移动客户端请求服务器端,一般是采用Json这种轻量级的形式。
JSON的数据格式:
JSON对象是一个无序的“‘名称/值’对”集合。
一个对象以“{”(左括号)开始,“}”(右括号)结束。
每个“名称”后跟一个“:”(冒号);“‘名称/值’对”之间使用“,”(逗号)分隔。
如:{
"name":"jackson",
"age":100
}
数组是值(value)的有序集合。一个数组以“[”(左括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔
如:{
“students”:
[
{"name":"jackson","age":100},
{"name":"michael","age":51}
]
}
这个例子采用的是服务器端:(jsp+servlet)(生成Json的字符串),客户端:解析Json数据。在网页上显示Json的字符串。
整体思路:新建一个web工程,定义一个实体类Person,在里面定义三个字段,定义它的构造函数,get、set方法,toString方法。定义一个JsonService类,在里面定义getPerson方法返回一个Person对象,定义getlistPerson方法返回一个装有Person类型的List对象,定义getListString方法返回一个装有字符串类型的List对象,定义getListMaps方法返回一个装有Map类型的List对象。定义一个JsonTools类,在里面写一个构建Json字符串的方法。定义一个TestJson类,在里面定义main方法,在这个方法中调用createJsonString返回Json对象并输出。定义一个servlet类JsonAction,在里面把doGet方法中的代码改为this.doPost(request,
response),在doPost方法中添加请求和接收的方式,调用createJsonString返回Json对象并输出。
Person.java文件:
public class Person { private int id; private String name; private String adress; public Person(int id, String name, String adress) { super(); this.id = id; this.name = name; this.adress = adress; } public Person() { // TODO Auto-generated constructor stub } 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 getAdress() { return adress; } public void setAdress(String adress) { this.adress = adress; } @Override public String toString() { return "Person [id=" + id + ", name=" + name + ", adress=" + adress + "]"; } }
JsonService.java文件:
public class JsonService { public JsonService() { // TODO Auto-generated constructor stub } public Person getPerson(){ Person person =new Person(1001,"jack","beijing"); return person; } public List<Person> getlistPerson(){ List<Person> list=new ArrayList<Person>(); Person person1=new Person(1001,"jack","beijing"); Person person2=new Person(1001,"rose","shanghai"); list.add(person1); list.add(person2); return list; } public List<String> getListString(){ List<String> list=new ArrayList<String>(); list.add("北京"); list.add("上海"); list.add("广州"); return list; } public List<Map<String, Object>> getListMaps(){ List<Map<String, Object>> list=new ArrayList<Map<String,Object>>(); Map<String, Object> map1=new HashMap<String, Object>(); map1.put("id", 1001); map1.put("name", "jack"); map1.put("address", "beijing"); Map<String, Object> map2=new HashMap<String, Object>(); map2.put("id", 1002); map2.put("name", "rose"); map2.put("address", "shanghai"); list.add(map1); list.add(map2); return list; } }
JsonTools.java文件:
public class JsonTools { public JsonTools() { // TODO Auto-generated constructor stub } /** * * @param key 表示json字符串的头信息 * @param value 是对解析的集合的类型 * @return */ public static String createJsonString(String key,Object value){ JSONObject jsonObject=new JSONObject(); jsonObject.put(key, value); return jsonObject.toString(); } }TestJson.java文件:
public class TestJson { public TestJson() { // TODO Auto-generated constructor stub } public static void main(String[] args) { String msg=""; JsonService service=new JsonService(); // Person person=service.getPerson(); // msg=JsonTools.createJsonString("person", person); // System.out.println(msg); msg=JsonTools.createJsonString("persons", service.getListMaps()); System.out.println(msg); } }
JsonAction.java文件:
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); } 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"); PrintWriter out = response.getWriter(); String jsonString=JsonTools.createJsonString("person", service.getlistPerson()); out.println(jsonString); out.flush(); out.close(); }
相关文章推荐
- Json转为Map
- [前端]JavaScript瀑布流
- 用原生js在DOM元素上面添加方法
- Javascript 对字符串,数组的操作
- js实现获取当前时间,并一直刷新
- 使用Json解析Json数据
- javascript中原型链与instanceof 原理
- 关于内存泄漏
- js类的使用
- js2次学习-----js组成
- js2次学习----label语句
- js2次学习-----with语句
- json parser
- paip.关于动画效果的原则 html js 框架总结
- C#高级篇(四)---File、FileStream、StreamReader、StreamWriter、xml、json解析
- extjs 3.4 EditorGridPanel里日期控件在后台获取格式为"2015-10-10T00:00:00"的问题解决
- 画一画javascript原型链
- jsp JSTL
- js三级联动
- BlocksIt.js瀑布流插件结合ajax实现无限加载数据