Json 数据的简单使用和交互

后台 可以使用多种方式,将java对象转换为 json格式的字符串, 这里我们采用 Gson 工具类,需要先导入 Gson 的jar包,js中 通过  JSON.parse(str);  将json格式的字符串转为 js 对象。(json数)也可将java对象转为特定类型,需要自定义转换器,例如下面的 转换日期格式;

import java.util.Date;
import java.util.ArrayList;
import java.util.List;

import org.junit.Test;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;

import henu.lyj.entity.User;
import henu.lyj.util.MyGsonDateConverter;

public class GsonTest {
	//json 字符串  对象 用{}  数组 集合 用 []
	@Test	//Gson 将java 对象转换为 json 字符串  
	public void test1(){
		User user = new User(1,"liuyj","henu");	
		
		Gson gson = new Gson();   
		String userStr= gson.toJson(user); //一个简单的 User对象
		System.out.println(userStr);
	}
	@Test		//Gson 将 集合 转换为 json 字符串  
	public void test2(){
		User user1 = new User(1,"liuyj1","henu1");
		User user2 = new User(2,"liuyj2","henu2");
		User user3 = new User(3,"liuyj3","henu3");
		List<User> users = new ArrayList<User>();
		users.add(user1);
		users.add(user2);
		users.add(user3);
	
		Gson gson = new Gson();
		String userStr= gson.toJson(users);
		System.out.println(userStr);
	}
	
	@Test	//对于特定类型的 转换  如 Date   实现Gson中规定的接口 进行自定义类型转换器
	public void test3(){
		GsonBuilder builder = new GsonBuilder();
		builder.registerTypeAdapter(Date.class, new MyGsonDateConverter());
		Gson gson = builder.create();
		User user = new User(1,"liu","henu",new Date());
		String jsonStr = gson.toJson(user);
		System.out.println(jsonStr);
	}
}


自定义转换器
import java.lang.reflect.Type;
import java.text.SimpleDateFormat;
import java.util.Date;

import com.google.gson.JsonElement;
import com.google.gson.JsonPrimitive;
import com.google.gson.JsonSerializationContext;
import com.google.gson.JsonSerializer;

public class MyGsonDateConverter implements JsonSerializer<Date>{

	@Override
	public JsonElement serialize(Date date, Type arg1, JsonSerializationContext context) {
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		String fdate = sdf.format(date);
		return new JsonPrimitive(fdate);
	}

}


前台转换

<script>
  function testJson(){
	//json  格式
		//对象 {"key":"value",---}
		//集合["a","s","s"]
		//对象集合  [{ },{},{}]
	//	var user = '{"id":1,"name":"liu","school":"henu"}';
		//字符串 转化为 js 对象
		var jsonUser = JSON.parse(user);
		alert(jsonUser.id + " " + jsonUser.name + " " + jsonUser.school);
		
}
</script>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值