84669 person learning
152542 person learning
20005 person learning
5487 person learning
7821 person learning
359900 person learning
3350 person learning
180660 person learning
48569 person learning
18603 person learning
40936 person learning
1549 person learning
1183 person learning
32909 person learning
如题,为什么不直接创建json 对应的实体,再反序列化,然后直接拿到完整的对象。我看到一些人都是去遍历json 数组。。然后再封装。。不理解为什么要这样做,我不是搞android的,轻点拍我。
小伙看你根骨奇佳,潜力无限,来学PHP伐。
不知道我这种情况是否算一个原因,在从服务器端传回处理结果的时候。我需要知道服务器端处理的是否成功,所以我会把结果封包到两个子的json 中,一个用来指示处理状态,另一个才是结果。这先解析第一个json 包,然后决定如何处理第二个json 的数据。
json是一种通用格式,服务器返回json,不把json转成java对象,还能怎样?
如果取到json后只拿map传递是可行的,而且效率高了那么一丢丢。但是一是维护成本变得高多了吧,下一个接手的人面对一大堆map怎么搞;二是不符合mvc的思想,map与View之间是强耦合的,如果是javabean的话,可以有很多方案去解耦
我们平时写的bean类,这个是指定规则的序列化对象,虚拟机认得,你说用json反序列化获取对象,这个规则是后台定的,虚拟机如何认得?
而且你说的,很多人一直遍历json字符串,然后一个字段一个字段的封装,超级麻烦,我也不知道他们为什么这么做?不管是解析成object对象还是list数据,我都有自己封装的工具,就两三行代码.如下:
private static Gson sGson; public static Gson getGson() { if (null == sGson) { sGson = new Gson(); } return sGson; } /** * 将json字符串转换成一个对象 * * @param jsonStr json字符串 * @param field 字段名 * @param clazz 字节码 * @param <T> 类型 * @return */ public static <T> T getObject(String jsonStr, String field, Class<T> clazz) { JSONObject jsonObject = getJSONObject(jsonStr); T t = getGson().fromJson(jsonObject.optString(field), clazz); return t; } /** * 将json字符串转换成list数据 * * @param json * @param clazz * @param <T> * @return */ public static <T> List<T> getList(String json, Class<T> clazz) { List<T> list = null; list = JSON.parseArray(json, clazz); return list; } /** * 将json字符串转换成jsonObject * * @param jsonStr * @return */ public static JSONObject getJSONObject(String jsonStr) { JSONObject mJson = new JSONObject(); try { mJson = new JSONObject(jsonStr); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } return mJson; }
这个是我个人的理解,也没有权威的认证过.
不知道我这种情况是否算一个原因,在从服务器端传回处理结果的时候。我需要知道服务器端处理的是否成功,所以我会把结果封包到两个子的json 中,一个用来指示处理状态,另一个才是结果。这先解析第一个json 包,然后决定如何处理第二个json 的数据。
json是一种通用格式,服务器返回json,不把json转成java对象,还能怎样?
如果取到json后只拿map传递是可行的,而且效率高了那么一丢丢。但是一是维护成本变得高多了吧,下一个接手的人面对一大堆map怎么搞;二是不符合mvc的思想,map与View之间是强耦合的,如果是javabean的话,可以有很多方案去解耦
我们平时写的bean类,这个是指定规则的序列化对象,虚拟机认得,你说用json反序列化获取对象,这个规则是后台定的,虚拟机如何认得?
而且你说的,很多人一直遍历json字符串,然后一个字段一个字段的封装,超级麻烦,我也不知道他们为什么这么做?不管是解析成object对象还是list数据,我都有自己封装的工具,就两三行代码.
如下:
这个是我个人的理解,也没有权威的认证过.