Json 数据的简单使用和交互

来源:互联网 发布:疯狂的美工京东注册码 编辑:程序博客网 时间:2024/05/16 01:32

后台 可以使用多种方式,将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>{@Overridepublic 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>