开发者

How to deserialize JSON string between JSON.org library using GSON library

开发者 https://www.devze.com 2023-03-07 10:59 出处:网络
I have a problem when using GSON library which is json library from Google. Hope someone can give me some hint.

I have a problem when using GSON library which is json library from Google. Hope someone can give me some hint.

The problem is when I use the gson.fromJson() function trying to convert a json string to a specified defined class.

The example code:

String jsonStr = "{name:"ABC", countries:["US"]}";  // Some Json string.
Gson gson = new Gson();
Example example = gson.fromJSON(jsonStr, Example.class);

class Example {
  // does no have no-arg constructor
  private String name;
  private Integer age;
  private JSONArray keywords;  // import org.json.JSONArray;
  private JSONArray countries;

  // other codes
}

The above code is simplied version of my problem. The problem is in the fromJson() function. The error message is saying "JsonParseException: Expecting object found ["US"]".

I can not figure out what the problem is. I guess maybe gson does not know how to covert a 开发者_开发问答string to JSONArray. Because in here, JSONArray is from another library(org.json).

I try to figure out in the gson documents. It look like I need to write some "Instance Creator" code.

I am wondering whether another can give me some solution. Thank you.


Just make keywords and countries a java List type. I've never seen org.json mixed with gson. Usually gson replaces org.json it's not meant to be used together.

EDIT:

Small example:

class Example {
   private String name;
   private Integer age;
   private List<String> keywords;
   private List<String> countries;

   public String toString() {
       return new Gson().toJson(this);
   }
}
0

精彩评论

暂无评论...
验证码 换一张
取 消