`
gybin
  • 浏览: 268975 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Gson toJson FromJson 异常

 
阅读更多

当一个Bean里面 还有 WeakReference 或者 SoftReference,使用Gson 2.5的 toJson 或者FromJson会导致:

 StackOverflowError 错误

 

参见 这个http://blog.csdn.net/s278777851/article/details/9850677

 

原因:

GSON版本 2.2.2, 在android 4.2之后会报错StackOverflowError,最后发现是Gson的bug,https://code.google.com/p/google-gson/issues/detail?id=440

 

Comment #12:

I believe it was in API 17 that the internals of WeakReference and SoftReference changed to be self-referent, which would trigger this. Are you using Gson to serialize a WeakReference or SoftReference? If you are, you should write your own TypeAdapter for those types.

 

解决方法一: 未测试

我用 GSON 1.7.1版本替换掉2.2.2版本就解决了。 1.7.1下载地址 https://code.google.com/p/google-gson/downloads/detail?name=google-gson-1.7.1-release.zip&can=2&q=

 

解决方法二:

// 用于界面更新
public transient WeakReference<View> m_oViewL = null;

 

 

 

 

分享到:
评论

相关推荐

    通过Gson解析Json文件

    3. 使用Gson解析JSON:创建Gson实例,然后调用`fromJson()`方法将JSON字符串转换为Java对象。 ```java Gson gson = new Gson(); String jsonString = reader.readLine(); // 读取JSON文件第一行内容 User user = ...

    使用gson解析json

    1. 首先,需要将JSON字符串解析成Java对象,使用Gson的fromJson方法可以实现这一步骤。 2. 其次,需要将Java对象转换成JSON字符串,使用Gson的toJson方法可以实现这一步骤。 使用FastJson解析JSON的步骤: 1. 首先...

    Gson解析JSON数据的入门级源码

    Person deserializedPerson = gson.fromJson(jsonInput, Person.class); ``` `fromJson()`方法会创建一个`Person`对象,并填充JSON中的属性值。 **自定义序列化和反序列化** Gson允许你自定义对象的序列化和反序列...

    Android Studio下使用Google Gson解析Json数据示例

    2. 使用Gson实例解析JSON:有了JSON字符串和对应的数据模型类,我们可以使用Gson的fromJson()方法将JSON转换为Java对象。 ```java String jsonString = "{\"name\":\"John Doe\",\"age\":30,\"city\":\"New York\"}...

    利用Google Gson实现JSON字符串和对象之间相互转换

    当你有一个Java对象并想将其转化为JSON字符串时,可以使用`Gson().toJson()`方法;反之,如果你有一个JSON字符串并想解析成Java对象,可以使用`Gson().fromJson()`方法。 ### JSON字符串转Java对象 以下是一个简单...

    JSON、GSON解析json

    - 将Java对象转换为JSON字符串:`String jsonString = gson.toJson(obj);` 4. 解析复杂JSON数据:如果JSON数据包含嵌套的对象或数组,GSON可以自动处理。例如,如果有如下JSON: ```json { "user": { "name": ...

    Gson to json

    1. **解析JSON**:当你有一个JSON字符串,可以使用Gson的`fromJson()`方法将其反序列化为Java对象。 ```java String jsonString = "{\"name\":\"John\",\"age\":30}"; User user = gson.fromJson(jsonString, User....

    Gson处理Json格式字符串代码

    要将`Video`对象转换为JSON字符串,我们可以使用Gson的`Gson`类和`toJson()`方法: ```java import com.google.gson.Gson; // 创建一个Video对象 Video video = new Video(); video.setTitle("视频标题"); video....

    gson 使用Gson将Java对象转换为JSON

    TestJsonFromObject obj = gson.fromJson(json, TestJsonFromObject.class); 3. 将Java对象的属性转换成指定的JSON名字 Java 代码 收藏代码 1. import com.google.gson.FieldNamingPolicy; 2. import ...

    android中gson解析json数据例程

    List&lt;Person&gt; people = gson.fromJson(jsonArrayString, new TypeToken&lt;List&lt;Person&gt;&gt;(){}.getType()); ``` 这里使用了`TypeToken`来指定泛型类型,因为Java的类型擦除无法在运行时获取到泛型信息。 总结来说,...

    Gson解析Json示例源码

    在Gson类库有一个Gson类,这个Gson类提供了两个方法:toJson() 和fromJson(),我们主要就是调用这两个方法来分别实现序列化Java对象为JSON字符串和反序列化JSON字符串成Java对象。 通过代码示例来对Gson类的常用方法...

    gson 2.3.1 json转换利器

    1. **对象到JSON字符串的转换**:Gson提供`Gson.toJson()`方法,可以将任何Java对象转换成对应的JSON字符串。例如,一个简单的Java对象: ```java public class User { String name; int age; // getters and ...

    assets下使用gson进行json文件读取

    return gson.fromJson(jsonString, clazz); } } ``` 这段代码定义了一个名为`JsonUtils`的工具类,其中包含两个静态方法:`readJsonFromAssets`用于读取`assets`目录下的JSON文件,返回JSON字符串;`jsonToObject...

    Gson+Json的jar包

    例如,你可以直接使用Gson的`Gson().toJson()`方法将Java对象转化为JSON字符串,然后使用`fromJson()`方法将JSON字符串转换回Java对象。此外,Gson还支持自定义类型适应器,可以处理更复杂的数据结构。 Json库可能...

    gson解析json

    gson解析json(1.6),162K,gson主要用到的方法有两个,gson.toJson()是将对象,属性等转化成 json 串,gson.fromJson(,)是将json串转化成对象

    gson和json

    你可以通过`Gson`类的`toJson()`方法实现这个过程。例如,如果你有一个名为`Person`的类,你可以创建一个`Person`对象并调用`toJson()`方法来生成JSON表示: ```java Gson gson = new Gson(); Person person = new ...

    使用Gson解析json数据

    User deserializedUser = gson.fromJson(jsonString, User.class); ``` `fromJson()`方法会将JSON字符串解析为User类的实例。 5. **服务端代码**:在描述中提到的`MyeclipseService`可能是服务端提供的接口,它可能...

    GSON解析Json数据信息

    相反,如果你有一个Java对象并希望将其转换为JSON格式,可以使用`Gson`对象的`toJson()`方法。 ```java Person person = new Person(); person.setName("John"); person.setAge(30); person.setCity("New York"); ...

    Eclipse下使用Google Gson解析Json数据示例+Android Studio下使用Google Gson解析Json数据示例

    User user = gson.fromJson(jsonStr, User.class); ``` 对于将Java对象转换为JSON,可以这样做: ```java String jsonStr = gson.toJson(user); ``` 现在转向Android Studio环境,Gson的使用方式基本相同,但需要...

Global site tag (gtag.js) - Google Analytics