Gson在fromJson方法崩溃

时间:2016-02-04 11:36:29

标签: java android json gson jsonobject

我正在尝试将简单的JSONObject转换为字符串,但不断崩溃。

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

obj是 - &gt; { "myData" : "1234" }
**当obj只是一个字符串(“myDate:1234”)时,它可以工作。

3 个答案:

答案 0 :(得分:2)

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

<iframe src="your_page_url" allowfullscreen="allowfullscreen" mozallowfullscreen="mozallowfullscreen" msallowfullscreen="msallowfullscreen" oallowfullscreen="oallowfullscreen" webkitallowfullscreen="webkitallowfullscreen"> </iframe> 

将gsonString转换为Object:

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

例如,这里将Object视为HashMap:

 public Object convertFromGson(String gsonString) {

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

从GsonStringTo转换为HashMap:

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

答案 1 :(得分:1)

制作模特课程。

Class DataObject {
public String myData;
}

然后使用此代码。

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

答案 2 :(得分:0)

使用以下代码:

Gson gson = new Gson();

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

因为Json方法的Gson签名是:

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

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