Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,9 @@ android {
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:24.0.0-alpha2'
compile 'com.google.code.gson:gson:2.2.4'
compile 'com.alibaba:fastjson:1.2.12'
}
30 changes: 30 additions & 0 deletions app/src/main/java/com/stay4it/sample/gsonTest/Person.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package com.stay4it.sample.gsonTest;

/**
* Created by AndWang on 16/5/24.
*/
public class Person {
private String firstName;
private String lastName;

public String getFirstName() {
return firstName;
}

public void setFirstName(String firstName) {
this.firstName = firstName;
}

public String getLastName() {
return lastName;
}

public void setLastName(String lastName) {
this.lastName = lastName;
}

@Override
public String toString() {
return "Person [firstName=" + firstName + ", lastName=" + lastName + "]";
}
}
46 changes: 46 additions & 0 deletions app/src/main/java/com/stay4it/sample/gsonTest/Test.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
package com.stay4it.sample.gsonTest;

import com.google.gson.reflect.TypeToken;
import com.stay4it.utilities.io.GsonUtils;

import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.List;

/**
* Created by AndWang on 16/5/24.
*/
public class Test {
public static void main(String[] args) {
Person p = new Person();
p.setFirstName("xxx");
p.setLastName("yyy");

List<Person> pList = new ArrayList<Person>();
pList.add(p);

String jsonStr = GsonUtils.toJsonList(pList);

System.out.println("Person List as Json Array = " + jsonStr);

Type collectionType = new TypeToken<List<Person>>() {
}.getType();
List<Person> personList = GsonUtils.fromJsonString(jsonStr, collectionType);
System.out.println("Person List from json String array = " + personList);

String personJsonStr = GsonUtils.toJsonObj(p);
System.out.println("Json String from person = " + personJsonStr);

Person p1 = GsonUtils.fromJsonString(personJsonStr, Person.class);
System.out.println("Person from json String = " + p1);
}

/**
* 最后输出结果
* Person List as Json Array = [{"firstName":"xxx","lastName":"yyy"}]
* Person List from json String array = [Person [firstName=xxx, lastName=yyy]]
* Json String from person = {"firstName":"xxx","lastName":"yyy"}
* Person from json String = Person [firstName=xxx, lastName=yyy]
* */

}
48 changes: 48 additions & 0 deletions app/src/main/java/com/stay4it/utilities/common/BeanUtil.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
package com.stay4it.utilities.common;

/**
* @author peiyu
* 对象常用方法工具类的封装
*/
public class BeanUtil {
/**
* 此类不需要实例化
*/
private BeanUtil() {
}

/**
* 判断对象是否为null
*
* @param object 需要判断的对象
* @return 是否为null
*/
public static boolean isNull(Object object) {
return null == object;
}

/**
* 判断对象是否不为null
*
* @param object 需要判断的对象
* @return 是否不为null
*/
public static boolean nonNull(Object object) {
return null != object;
}

/**
* 判断对象是否为空,如果为空,直接抛出异常
*
* @param object 需要检查的对象
* @param errorMessage 异常信息
* @return 非空的对象
*/
public static Object requireNonNull(Object object, String errorMessage) {
if (null == object) {
throw new NullPointerException(errorMessage);
}
return object;
}

}
16 changes: 16 additions & 0 deletions app/src/main/java/com/stay4it/utilities/common/DisplayUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,20 @@ public static int dip2px(Context context, float dipValue) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (dipValue * scale + 0.5f);
}

/**
* 将px值转换为sp值,保证文字大小不变
*/
public static int px2sp(Context context, float pxValue) {
final float fontScale = context.getResources().getDisplayMetrics().scaledDensity;
return (int) (pxValue / fontScale + 0.5f);
}

/**
* 将sp值转换为px值,保证文字大小不变
*/
public static int sp2px(Context context, float spValue) {
final float fontScale = context.getResources().getDisplayMetrics().scaledDensity;
return (int) (spValue * fontScale + 0.5f);
}
}
110 changes: 110 additions & 0 deletions app/src/main/java/com/stay4it/utilities/io/FastJsonUtil.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
package com.stay4it.utilities.io;

import android.text.TextUtils;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.stay4it.utilities.common.BeanUtil;

import java.util.Map;

/**
* @author peiyu.
* 基于fastjson封装解析json
*/
public class FastJsonUtil {
/**
* 默认json格式化方式
*/
public static final SerializerFeature[] DEFAULT_FORMAT = {SerializerFeature.WriteDateUseDateFormat, SerializerFeature.WriteEnumUsingToString,
SerializerFeature.WriteNonStringKeyAsString, SerializerFeature.QuoteFieldNames, SerializerFeature.SkipTransientField,
SerializerFeature.SortField, SerializerFeature.PrettyFormat};

private FastJsonUtil() {
}

/**
* 从json获取指定key的字符串
*
* @param jsonString json字符串
* @param key 字符串的key
* @return 指定key的值
*/
public static Object getStringFromJSONObject(String jsonString, String key) {
BeanUtil.requireNonNull(jsonString, "json is null");
return JSON.parseObject(jsonString).getString(key);
}

/**
* 将字符串转换成JSON字符串
*
* @param jsonString json字符串
* @return 转换成的json对象
*/
public static JSONObject getJSONFromString(String jsonString) {
if (TextUtils.isEmpty(jsonString)) {
return new JSONObject();
}
return JSON.parseObject(jsonString);
}

/**
* 将json字符串,转换成指定java bean
*
* @param jsonString json串对象
* @param cls 指定的bean
* @param <T> 任意bean的类型
* @return 转换后的java bean对象
*/

public static <T> T toBean(String jsonString, Class<T> cls) {
BeanUtil.requireNonNull(jsonString, "jsonString is null");
JSONObject jo = JSON.parseObject(jsonString);
jo.put(JSON.DEFAULT_TYPE_KEY, cls.getName());
return JSON.parseObject(jo.toJSONString(), cls);
}

/**
* @param obj 需要转换的java bean
* @param <T> 入参对象类型泛型
* @return 对应的json字符串
*/
public static <T> String toJson(T obj) {
BeanUtil.requireNonNull(obj, "obj is null");
return JSON.toJSONString(obj, DEFAULT_FORMAT);
}

/**
* 通过Map生成一个json字符串
*
* @param map 需要转换的map
* @return json串
*/
public static String toJson(Map<String, Object> map) {
BeanUtil.requireNonNull(map, "map is null");
return JSON.toJSONString(map, DEFAULT_FORMAT);
}

/**
* 美化传入的json,使得该json字符串容易查看
*
* @param jsonString 需要处理的json串
* @return 美化后的json串
*/
public static String prettyFormatJson(String jsonString) {
BeanUtil.requireNonNull(jsonString, "jsonString is null");
return JSON.toJSONString(getJSONFromString(jsonString), true);
}

/**
* 将传入的json字符串转换成Map
*
* @param jsonString 需要处理的json串
* @return 对应的map
*/
public static Map<String, Object> toMap(String jsonString) {
BeanUtil.requireNonNull(jsonString, "jsonString is null");
return getJSONFromString(jsonString);
}
}
108 changes: 108 additions & 0 deletions app/src/main/java/com/stay4it/utilities/io/GsonUtils.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
package com.stay4it.utilities.io;

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

import java.lang.reflect.Type;
import java.util.List;

/**
* GsonUtils.
*
* @author simon
* @version 1.0.0
* @since 2015-12-10
*/
public class GsonUtils {

private static Gson sGson = new GsonBuilder().create();

/**
* get Gson.
*
* @return Gson.
*/
public static Gson getGson() {
return sGson;
}

/**
* new Gson.
*
* @return Gson.
*/
public static Gson newGson() {
return new GsonBuilder().create();
}

/**
* convert json String to Object.
*
* @param jsonString json string
* @param clazz Object class
* @param <T> Object Class Type
* @return Object
*/
public static <T> T fromJsonString(String jsonString, Class<T> clazz) {
try {
return sGson.fromJson(jsonString, clazz);
} catch (Throwable var3) {
var3.printStackTrace();
return null;
}
}

/**
* convert json string to the Object of the specified Type.
*
* @param json json string
* @param typeOfT Type
* @param <T> Type
* @return Object of T
*/
public static <T> T fromJsonString(String json, Type typeOfT) {
try {
return sGson.fromJson(json, typeOfT);
} catch (JsonSyntaxException var3) {
var3.printStackTrace();
return null;
}
}

/**
* vonvert Object to json string.
*
* @param object Object
* @return json string.
*/
public static String toJsonString(Object object) {
try {
return sGson.toJson(object);
} catch (Throwable var2) {
var2.printStackTrace();
return "";
}
}

/**
* Converts a collection of objects using Google's Gson Package
*
* @param objCol
* @return a json string array
*/
public static <T> String toJsonList(List<T> objCol) {
return sGson.toJson(objCol);
}

/**
* To Json Converter using Goolge's Gson Package<br>
* this method converts a simple object to a json string<br>
*
* @param obj
* @return a json string
*/
public static <T> String toJsonObj(T obj) {
return sGson.toJson(obj);
}
}