java 处理 json格式字符串,目前只使用过Google的Gson库。
pom:
<dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.1</version> </dependency>
简单包装一下:
import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.JsonElement; import com.google.gson.JsonParser; import com.google.gson.reflect.TypeToken; import java.lang.reflect.Type; import java.util.List; public class Gsons { public static Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd").create(); public static Gson gsonPretty = new GsonBuilder().setPrettyPrinting().create(); static Gson gsonDate = new GsonBuilder().setDateFormat("yyyy-MM-dd") .create(); static Gson gsonPrettyDate = new GsonBuilder().setDateFormat("yyyy-MM-dd") .setPrettyPrinting().create(); static JsonParser parser = new JsonParser(); public static String toJson(Object obj, boolean pretty) { return pretty ? gsonPretty.toJson(obj) : gson.toJson(obj); } public static String toJson_OnlyDate(Object obj, boolean pretty) { return pretty ? gsonPrettyDate.toJson(obj) : gsonDate.toJson(obj); } public static Gson getGson() { return gson; } public static JsonParser getParser() { return parser; } /** * TypeToken<List<Foo>> list = new TypeToken<List<Foo>>() { }; * * @param json * @param typeToken * @return */ public static <T> List<T> fromJson(String json, TypeToken<List<T>> typeToken) { Type type = typeToken.getType(); List<T> ret = gson.fromJson(json, type); return ret; } public static <T> T fromJson(String json, Class<T> classOfT) { return gson.fromJson(json, classOfT); } public static String pretty(String json) { if (json == null) return null; JsonElement jsonElement = parser.parse(json); return gsonPretty.toJson(jsonElement); } }
注意一点:
public static Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd").create();
在处理Date类日期时,最好指定格式,否则容易识别不出来。
当然,也可以不包装,直接使用。具体使用方式,看看源代码。