Json for Java 代码示例
来源:互联网 发布:淘宝xbox360手柄一百多 编辑:程序博客网 时间:2024/06/06 12:28
Gson 是 Google 写的一个 json 操作库,用起来很方便,不依赖任何外部 jar 包。
Json-lib 是 纯正血统版,依赖了如下一些 jar 包(这里使用的 Json-lib 的版本为 2.4-jdk15):
commons-beanutils
commons-collections
commons-lang
commons-logging
ezmorph
下面是一个代码示例:
GsonUtilUsage.java
package org.bruce.json.test;import java.util.ArrayList;import java.util.List;import org.bruce.locator.utils.GsonUtil;import net.sf.json.JSONArray;import net.sf.json.JSONObject;/** * @author kodeyang * */public class GsonUtilUsage {/** * @param args */public static void main(String[] args) {Sprite node0 = new Sprite("abc.png");Sprite node1 = new Sprite("123.png");List<Sprite> nodeList = new ArrayList<Sprite>();nodeList.add(node0);nodeList.add(node1);// 将 Sprite 对象列表转换成 Json 数组~JSONArray jsonArray = JSONArray.fromObject(nodeList);// 以紧凑的方式打印得到的 json 字符串~System.out.println(jsonArray);System.out.println("---------------- 俊俏的分割线 ----------------");// 以格式化的方式打印得到的 json 字符串~System.out.println(GsonUtil.format(jsonArray.toString()));System.out.println("---------------- 清新的分割线 ----------------");// 将单个 Sprite 对象转换为 JSONObject 对象~JSONObject jsonObj = JSONObject.fromObject(node0);System.out.println(jsonObj);System.out.println("---------------- 风骚的分割线 ----------------");// 将 json 字符串解析为 Sprite 对象~Sprite sprite = (Sprite) GsonUtil.jsonToBean(jsonObj.toString(), Sprite.class);System.out.println(sprite);}}
代码输出为:
[{"height":0,"image":"abc.png","visible":true,"width":0,"zorder":0},{"height":0,"image":"123.png","visible":true,"width":0,"zorder":0}]---------------- 俊俏的分割线 ----------------[ { "height": 0, "image": "abc.png", "visible": true, "width": 0, "zorder": 0 }, { "height": 0, "image": "123.png", "visible": true, "width": 0, "zorder": 0 }]---------------- 清新的分割线 ----------------{"height":0,"image":"abc.png","visible":true,"width":0,"zorder":0}---------------- 风骚的分割线 ----------------abc.png(0, 0)
GsonUtil.java
package org.bruce.json.test;import java.lang.reflect.Type;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;import java.util.List;import java.util.Map;import com.google.gson.Gson;import com.google.gson.GsonBuilder;import com.google.gson.JsonDeserializationContext;import com.google.gson.JsonDeserializer;import com.google.gson.JsonElement;import com.google.gson.JsonParseException;import com.google.gson.JsonParser;import com.google.gson.JsonPrimitive;import com.google.gson.JsonSerializationContext;import com.google.gson.JsonSerializer;/** * @author lee.li * json 简单操作的工具类 * http://www.oschina.net/code/snippet_566353_10898 * 仅依赖 gson-2.2.4.jar */public class GsonUtil {// 紧凑的(不带格式的)~private static Gson gsonTight = new Gson();// 美观的(带格式的)~private static Gson gsonPretty = new GsonBuilder().setPrettyPrinting().create();/** * 格式化 json 字符串~ * @param ugly * @return */public static String format(String ugly){JsonElement je = new JsonParser().parse(ugly);String strPrettyJson = gsonPretty.toJson(je);return strPrettyJson;}/** * 将对象转换成json格式 * * @param ts * @return */public static String objectToJson(Object obj) {String strJson = null;if (gsonTight != null) {strJson = gsonTight.toJson(obj);}return strJson;}/** * 将对象转换成json格式(并自定义日期格式) * * @param ts * @return */public static String objectToJsonDateSerializer(Object ts,final String dateformat) {String jsonStr = null;gsonTight = new GsonBuilder().registerTypeHierarchyAdapter(Date.class,new JsonSerializer<Date>() {public JsonElement serialize(Date src,Type typeOfSrc,JsonSerializationContext context) {SimpleDateFormat format = new SimpleDateFormat(dateformat);return new JsonPrimitive(format.format(src));}}).setDateFormat(dateformat).create();if (gsonTight != null) {jsonStr = gsonTight.toJson(ts);}return jsonStr;}/** * 将json格式转换成list对象 * * @param jsonStr * @return */public static List<?> jsonToList(String jsonStr) {List<?> objList = null;if (gsonTight != null) {java.lang.reflect.Type type = new com.google.gson.reflect.TypeToken<List<?>>() {}.getType();objList = gsonTight.fromJson(jsonStr, type);}return objList;}/** * 将json格式转换成map对象 * * @param jsonStr * @return */public static Map<?, ?> jsonToMap(String jsonStr) {Map<?, ?> objMap = null;if (gsonTight != null) {java.lang.reflect.Type type = new com.google.gson.reflect.TypeToken<Map<?, ?>>() {}.getType();objMap = gsonTight.fromJson(jsonStr, type);}return objMap;}/** * 将json转换成bean对象 * * @param jsonStr * @return */public static Object jsonToBean(String jsonStr, Class<?> cl) {Object obj = null;if (gsonTight != null) {obj = gsonTight.fromJson(jsonStr, cl);}return obj;}/** * 将json转换成bean对象 * * @param jsonStr * @param cl * @return */@SuppressWarnings("unchecked")public static <T> T jsonToBeanDateSerializer(String jsonStr, Class<T> cl,final String pattern) {Object obj = null;gsonTight = new GsonBuilder().registerTypeAdapter(Date.class, new JsonDeserializer<Date>() {public Date deserialize(JsonElement json, Type typeOfT,JsonDeserializationContext context)throws JsonParseException {SimpleDateFormat format = new SimpleDateFormat(pattern);String dateStr = json.getAsString();try {return format.parse(dateStr);} catch (ParseException e) {e.printStackTrace();}return null;}}).setDateFormat(pattern).create();if (gsonTight != null) {obj = gsonTight.fromJson(jsonStr, cl);}return (T) obj;}/** * 根据 * * @param jsonStr * @param key * @return */public static Object getJsonValue(String jsonStr, String key) {Object rulsObj = null;Map<?, ?> rulsMap = jsonToMap(jsonStr);if (rulsMap != null && rulsMap.size() > 0) {rulsObj = rulsMap.get(key);}return rulsObj;}}Sprite.java
package org.bruce.json.test;/** * @author kodeyang * */public class Sprite {private String image;private int width;private int height;private int zorder = 0;private boolean visible = true;public Sprite() {// TODO Auto-generated constructor stub}public Sprite(String image) {this.image = image;}public Sprite(String image, boolean visible, int zorder) {this.image = image;this.visible = visible;this.zorder = zorder;}@Overridepublic String toString() {StringBuffer sb = new StringBuffer();sb.append(image).append("(").append(width).append(", ").append(height).append(")");return sb.toString();}public String getImage() {return image;}public void setImage(String image) {this.image = image;}public boolean isVisible() {return visible;}public void setVisible(boolean visible) {this.visible = visible;}public int getZorder() {return zorder;}public void setZorder(int zorder) {this.zorder = zorder;}public int getWidth() {return width;}public void setWidth(int width) {this.width = width;}public int getHeight() {return height;}public void setHeight(int height) {this.height = height;}}
- Json for Java 代码示例
- JAVA与JSON的使用方式及转换示例代码
- JAVA的JSON示例
- JSON数据解析代码示例
- Json技术使用代码示例
- Android JSON解析示例代码
- json技术使用代码示例
- Json for Java
- json for java
- JSON-RPC for JAVA
- Json for Java
- json-rpc-for-java
- JSON for java入门
- JSON for java总结
- json: java生成json数据示例
- java生成json数据示例
- Java reflection代码示例
- java代码示例(Hashtable)
- 黄聪:wordpress调用函数大全
- uboot中添加自启动的快捷菜单
- 测试经理的工作以及素质
- 如何在C++获得系统时间(转)
- [TI DLP Buglist]DRAM fail after screen capture
- Json for Java 代码示例
- 线段树总结
- Deep Learning in NLP (一)词向量和语言模型
- oracle导入dmp文件
- Android 上层界面到内核代码的完整的流程分析,以alarm为例子
- service管理
- poj 2001 Shortest Prefixes
- Android/linux(earlysuspend、lateresume)睡眠唤醒机制简介
- UDP协议与TCP协议的比较