All Downloads are FREE. Search and download functionalities are using the official Maven repository.

cn.leancloud.gson.GSONParser Maven / Gradle / Ivy

package cn.leancloud.gson;

import cn.leancloud.json.JSONArray;
import cn.leancloud.json.JSONObject;
import cn.leancloud.json.JSONParser;
import cn.leancloud.json.TypeReference;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

public class GSONParser implements JSONParser {
  public  T parseObject(String text, Class clazz) {
    return GsonWrapper.parseObject(text, clazz);
  }

  public  T parseObject(String text, TypeReference type) {
    return GsonWrapper.parseObject(text, type.getType());
  }

  public JSONObject parseObject(String text) {
    Map jsonObject = GsonWrapper.parseObject(text, Map.class);
    return new GsonObject(jsonObject);
  }

  public JSONArray parseArray(String text) {
    JsonArray jsonArray = GsonWrapper.parseObject(text, JsonArray.class);
    return new GsonArray(jsonArray);
  }

  public  List parseArray(String text, Class clazz) {
    JsonArray jsonArray = GsonWrapper.parseObject(text, JsonArray.class);
    List list = new ArrayList<>(jsonArray.size());
    for (int i = 0;i < jsonArray.size(); i++) {
      list.add(GsonWrapper.toJavaObject(jsonArray.get(i), clazz));
    }
    return list;
  }

  public Object parse(String text) {
    return GsonWrapper.parseObject(text);
  }

  public JSONObject toJSONObject(Map param) {
    if (null == param) {
      return new GsonObject();
    }
    return new GsonObject(param);
  }

  public JSONArray toJSONArray(List list) {
    if (null == list) {
      return new GsonArray();
    }
    return new GsonArray(list);
  }
  public  T toJavaObject(JSONObject json, Class clazz) {
    return GsonWrapper.toJavaObject(((GsonObject)json).getRawObject(), clazz);
  }

  public String toJSONString(Object object) {
    return GsonWrapper.getGsonInstance().toJson(object);
  }
}