Gson在fromJson方法处崩溃

yv5phkfx  于 2022-11-06  发布在  其他
关注(0)|答案(3)|浏览(207)

我试图将一个简单的JSONObject转换为字符串,但总是崩溃。

classStr = (Class<T>) String.class;
Gson gson = new Gson();
dataObject = gson.fromJson( obj, classStr );

对象是--〉{ "myData" : "1234" }

**当obj只是一个字符串(“myDate:1234”)时,它有效。

cgyqldqp

cgyqldqp1#

下面的代码用于将Java或Json对象转换为GsonString:

//Here Object may b collection object or any other java object
public String convertToGsonString(Object obj) {
    Gson gson = new Gson();
    return gson.toJson(obj);
}

将gsonString转换为对象:

public Object convertFromGson(String gsonString) {

    Gson gson = new Gson();
    Type type = new TypeToken<Object>() {
    }.getType();
    return gson.fromJson(gsonString, type);
}

例如,这里将Object看作一个HashMap:

public String convertToGsonString(HashMap<String,String> obj) {
    Gson gson = new Gson();
    return gson.toJson(obj);
}

从GsonString转换为散列Map:

public HashMap<String,String> convertFromGson(String gsonString) {

  Gson gson = new Gson();
  Type type = new TypeToken<HashMap<String,String>>() {
  }.getType();
  return gson.fromJson(gsonString, type);
}
daolsyd0

daolsyd02#

生成一个Model类。

Class DataObject {
public String myData;
}

然后使用此代码。

Gson gson = new Gson();
DataObject dataObject = gson.fromJson(obj, DataObject.class);
gajydyqb

gajydyqb3#

使用以下代码:
Gson =新的Gson();
数据对象= gson.从json(对象,数据对象.类);
因为Gson fromJson方法的签名是:

public <T> T fromJson(String json, Class<T> classOfT) throws JsonSyntaxException {

这里它返回类类型为T的对象。因此,不要使用String.class(不匹配类类型),而要使用dataObject示例的类,否则它将抛出JsonSyntaxException。

相关问题