JSON----创建JSON

Ø Json 全称: JavaScriptObject Notation
Ø
Ø Json 建构于两种结构:
Ø “名称 / 值”对的集合( Acollection of name/value pairs )。不同的语言中,它被理解为对象( object ),纪录( record ),结构( struct ),字典( dictionary ),哈希表( hashtable ),有键列表( keyed list ),或者关联数组 ( associative array )。
Ø 值的有序列表( Anordered list of values )。在大部分语言中,它被理解为数组( array

Ø JSON 对象是一个无序的“‘名称 / 值’对”集合。
Ø 一个对象以“ {” (左括号)开始,“ }” (右括号)结束。
Ø 每个“名称”后跟一个“ :” (冒号);“‘名称 / 值’ 对”之间使用“ ,” (逗号)分隔。
Ø 如:      {
Ø   “name”:” jackson ”,
Ø         “age”:100
Ø        }
Ø

Ø 数组是值( value )的有序集合。一个数组以“ [” (左中括号)开始,“ ]” (右中括号)结束。值之间使用“ ,” (逗号)分隔
Ø 如: {
Ø   “students”:
Ø   [
Ø   {“name”:” jackson”,“age ”:100},
Ø   {“name”:” michael”,”age ”:51}
Ø   ]
Ø        }

创建Json




TestJson
package com.json.test;

import com.json.domain.Person;
import com.json.service.JsonService;
import com.json.tools.JsonTools;


public class TestJson {

	public TestJson() {
		// TODO Auto-generated constructor stub
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String msg = "";
		JsonService service = new JsonService();
		
		Person person = service.getPerson();
		msg = JsonTools.createJsonString("person", person);
		System.out.println(msg);
		
		msg = JsonTools.createJsonString("List<Person>-->persons", service.getlistPerson());
		System.out.println(msg);
		
		msg = JsonTools.createJsonString("List<String>-->person", service.getListString());
		System.out.println(msg);
		
		msg = JsonTools.createJsonString("List<Map<>>-->persons", service.getListMaps());
		System.out.println(msg);
		
		
	}

}

Person
package com.json.domain;

public class Person {

	private int id;
	private String name;

	public Person(int id, String name, String address) {
		super();
		this.id = id;
		this.name = name;
		this.address = address;
	}

	private String address;

	public int getId() {
		return id;
	}

	@Override
	public String toString() {
		return "Person [address=" + address + ", id=" + id + ", name=" + name
				+ "]";
	}

	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;
	}

	public Person() {
		// TODO Auto-generated constructor stub
	}

}

JsonService 应该用数据库来做
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() {
		// TODO Auto-generated constructor stub
	}
	//一个任意对象转换为JSON
	public Person getPerson() {
		Person person = new Person(1001, "jack", "beijing");
		return person;
	}
	//一个任意对象的LIST转化为JSON
	public List<Person> getlistPerson() {
		List<Person> list = new ArrayList<Person>();
		Person person1 = new Person(1001, "jack", "guangxi");
		Person person2 = new Person(1002, "rose", "guangdong");
		list.add(person1);
		list.add(person2);
		return list;
	}
	//任意LIST<String>转化为JSON对象
	public List<String> getListString() {
		List<String> list = new ArrayList<String>();
		list.add("beijing");
		list.add("shanghai");
		list.add("hunan");
		return list;
	}
	//一个List<Map<String, Object>>转化为JSON
	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(最主要的JSON类)
传入两个参数:
JSONObject jsonObject = new JSONObject();
		jsonObject.put(key, value);

package com.json.tools;

import net.sf.json.JSONObject;

public class JsonTools {

	public JsonTools() {
		// TODO Auto-generated constructor stub
	}

	/**
	 * @param key
	 *            ��ʾjson�ַ��ͷ��Ϣ
	 * @param object
	 *            �ǶԽ����ļ��ϵ�����
	 * @return
	 */
	public static String createJsonString(String key, Object value) {
		JSONObject jsonObject = new JSONObject();
		jsonObject.put(key, value);
		return jsonObject.toString();
	}

}

JsonAction
package com.json.action;

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 JsonAction extends HttpServlet {

	private JsonService service;

	/**
	 * Constructor of the object.
	 */
	public JsonAction() {
		super();
	}

	/**
	 * Destruction of the servlet. <br>
	 */
	public void destroy() {
		super.destroy(); // Just puts "destroy" string in log
		// Put your code here
	}

	/**
	 * The doGet method of the servlet. <br>
	 * 
	 * 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. <br>
	 * 
	 * 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");

		PrintWriter out = response.getWriter();
		String jsonString = "";
		String action_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. <br>
	 * 
	 * @throws ServletException
	 *             if an error occurs
	 */
	public void init() throws ServletException {
		// Put your code here
		service = new JsonService();
	}

}

结果:
{"person":{"address":"beijing","id":1001,"name":"jack"}}
{"List<Person>-->persons":[{"address":"guangxi","id":1001,"name":"jack"},{"address":"guangdong","id":1002,"name":"rose"}]}
{"List<String>-->person":["beijing","shanghai","hunan"]}
{"List<Map<>>-->persons":[{"id":1001,"address":"beijing","name":"jack"},{"id":1002,"address":"shanghai","name":"rose"}]}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值