移动开发:将json字符串转化为相关对象

来源:互联网 发布:ai软件怎么使用方法 编辑:程序博客网 时间:2024/06/10 00:24

在最近项目中涉及到将json字符串转化为对象集和单个对象,写了一个泛型方法,记录下来【欢迎大家批评指正】


【转载请标明出处:http://blog.csdn.net/mr_woniu/article/details/50251515】

json字符串(举个简单例子,对应一个Message对象):

[{"id":1,"MsgTitle":"dl","CreateTime":456789,"createId":10,"createname":"admin","acceptid":3,"isreaded":0,"IsDelete":0,"messageid":1,"acceptuser":"李孟琦","PublishDate":123456,"StartTime":null,"EndTime":null}]

一、获取一个对象集:

比方说想得到List<Message>对象呢,当然这个集合的话,上面json也就要对应了。Gson能将json转为对象,的确,但总不能每一次都实例化一个Gson吧,下面是这个方式的代码:

public static <M> ArrayList<M> fromJsonList(String json, Class<M> cls) {Gson gson = new Gson();ArrayList<M> mList = new ArrayList<M>();JsonArray array = new JsonParser().parse(json).getAsJsonArray();for (JsonElement elem : array) {mList.add(gson.fromJson(elem, cls));}return mList;}
只要有需要转化为List集合的,直接调用该方法。原理也很简单:参数是一个json字符串和一个泛型,返回值是一个泛型的集合,里面的代码我就不用解释了,相信大家一看就明白了。

调用的代码如下:

List<Message> message = fromJsonList(messageString, Message.class);

二、获取单个对象:

上面的对象集可以获取了,那么单个对象也就一个道理了。下面是方法:

<span style="font-size:14px;">public static <cls, M> M fromJsonObject(String json, Class<M> cls) {Gson gson = new Gson();return gson.fromJson(json, cls);}</span>

调用的相应代码如下:

<span style="font-size:14px;">Message message=fromJsonObject(                          messageString , Message.class);</span>



0 0