json解析,我的幼稚

原创 2016年08月31日 15:27:20

以前有一个非常好的解析工具我不用,直到我用了,我才追悔莫及大哭,还是太年轻啊!好进入正题

大家都知道json解析,一般的工具有 Gson ,Fastjson,然而我却没有用它们,现在想想真是后悔啊,以前写了多少那种二B代码

public static ArrayList<Company> getCompany(String urlPath)
			throws Exception {
		ArrayList<Company> companiesList = null;
		String data = getJsonData(urlPath);
		if (data == "[]") {
			return companiesList;
		}
		JSONObject json = new JSONObject(data);
		JSONArray ja = new JSONArray(json.getString("list"));
		if (ja.length() > 0) {
			for (int i = 0; i < ja.length(); i++) {
				companiesList = companiesList == null ? new ArrayList<Company>()
						: companiesList;
				JSONObject jo = ja.getJSONObject(i);
				Company company = new Company();
				company.setUnitName(getValue(jo, "UNIT_NAME"));
				company.setUnitID(getValue(jo, "SYS_ID"));
				company.setUnitCode(getValue(jo, "UNIT_CODE"));
				company.setAddress(getValue(jo, "ADDR"));
				company.setTelephone(getValue(jo, "PHONE"));
				company.setLegalRepresentative(getValue(jo, "CORR_NAME"));
				company.setUnitDevicesNum(getValue(jo, "equitmentcount"));
				companiesList.add(company);
			}
			companiesList.get(0).setSun(json.getString("count"));
			return companiesList;
		} else {
			return companiesList;
		}
	}
这个只是我项目里面一点的二B代码,真要算起来,呵呵回绕地球0.1圈,不过还好研究了一下gson解析,简直唉!后悔啊!

不多说代码等会上传上去贴一下代码:


这个是json地址:  http://apicloud.mob.com/v1/weather/query?key=1149cdb17daeb&city=深圳

然后通过分析json数据的格式我分别写了三个实体类以下   get set方法省略 ,大家自己一定要补上啊

public class User {
    private String msg;
    private String retCode ;
    private List<Result> result=new ArrayList<>();

public class Result {

    private String airCondition;//良,
    private String city;//深圳,
    private String coldIndex;//低发期,
    private String date;//2016-08-30,
    private String distrct;//深圳,
    private String dressingIndex;//薄短袖类,
    private String exerciseIndex;//不适宜,
    private String humidity;// 湿度:61%,
    private String pollutionIndex;// 79,
    private String province;// 广东,
    private String sunrise;// 06;//06,
    private String sunset;// 18;//42,
    private String temperature;// 30℃,
    private String time;// 14;//53,
    private String updateTime;// 20160830150519,
    private String washIndex;// 不适宜,
    private String weather;// 多云,
    private String week;// 周二,
    private String wind;// 西北风3级
    private List<Future> future;

public class Future {
    private String date;// 2016-08-30,
    private String dayTime;// 多云,
    private String night;// 多云,
    private String temperature;// 30°C / 25°C,
    private String week;// 今天,
    private String wind;// 无持续风向 小于3级
                                                            

  这里就把json格式里面对应的字段全部都生成了,一定要注意解析的json字段要和实体一模一样!!!

这里我们来解Json:


    private List<Result> results = new ArrayList<>();
    private List<Future> futures = new ArrayList<>();
    private void GsonText(String json) {
        Gson gson = new Gson();
        User user = gson.fromJson(json, User.class);
        Log.i("msgs", user.getMsg() + "" + user.getRetCode() + user.getResult());
        results = user.getResult();
        for (int i = 0; i < results.size(); i++) {
            Log.i("msgs", results.get(i).getAirCondition());
            Log.i("msgs", results.get(i).getAirCondition());//良,
            Log.i("msgs", results.get(i).getCity());//深圳,
            Log.i("msgs", results.get(i).getColdIndex());//低发期,
            Log.i("msgs", results.get(i).getDate());//2016-08-30,
            Log.i("msgs", results.get(i).getDistrct());//深圳,
            Log.i("msgs", results.get(i).getDressingIndex());//薄短袖类,
            Log.i("msgs", results.get(i).getExerciseIndex());//不适宜,
            Log.i("msgs", results.get(i).getHumidity());// 湿度:61%,
            Log.i("msgs", results.get(i).getPollutionIndex());// 79,
            Log.i("msgs", results.get(i).getProvince());// 广东,
            Log.i("msgs", results.get(i).getSunrise());// 06());//06,
            Log.i("msgs", results.get(i).getSunset());// 18());//42,
            Log.i("msgs", results.get(i).getTemperature());// 30℃,
            Log.i("msgs", results.get(i).getTime());// 14());//53,
            Log.i("msgs", results.get(i).getUpdateTime());// 20160830150519,
            Log.i("msgs", results.get(i).getWashIndex());// 不适宜,
            Log.i("msgs", results.get(i).getWeather());// 多云,
            Log.i("msgs", results.get(i).getWeek());// 周二,
            Log.i("msgs", results.get(i).getWind());// 西北风3级
        }
            futures=results.get(0).getFuture();
        for (int i = 0; i <futures.size() ; i++) {
            Log.i("msgs", futures.get(i).getDate());// 西北风3级
            Log.i("msgs", futures.get(i).getDayTime());// 西北风3级
            Log.i("msgs", futures.get(i).getNight());// 西北风3级
            Log.i("msgs", futures.get(i).getTemperature());// 西北风3级
            Log.i("msgs", futures.get(i).getWeek());// 西北风3级
            Log.i("msgs", futures.get(i).getWind());// 西北风3级
        }

在这里我自己打印了一下可以看到,呵呵,数据全部都出来了这里我们看到很少的代码就把数据解析出来了,以前觉得android api自带的json解析就可以了,现在看看自己确实lol!

当然这里附上一个解析Json数据的时间的一篇文章:http://www.android100.org/html/201506/28/159434.html

确实gson解析的速度的确要快一点,不要小看这么一点,因为应用的性能就是这样提上来的。

源码下载



版权声明:本文为博主原创文章,未经博主允许不得转载。

幼儿园择校记-海淀清河附近的家长看过来喽!

从去年6月份开始在清河周边参观糼儿园到现在,一直没有找到有称心的幼儿园,总觉得苗苗还小,还可以再晚一些去,所以也没有太在意。这次过完春节回来后,闺女已经正式迈入三周的门槛了,再也不能找出任何借口将女儿...
  • edmond999
  • edmond999
  • 2016年10月10日 11:03
  • 5096

Gson解析第三方提供Json数据(天气预报,新闻等)

之前都是自己写后台,自己的服务器提供数据给客户端, 最近在看第三方的数据接口,访问其他网站提供的信息;比如,我们可能自己收集的数据相当有限,但是网上提供了很多关于天气预报、新闻、星座运势、身份证号、车...
  • zml_2015
  • zml_2015
  • 2016年03月18日 11:40
  • 7914

Oracle解析json字符串 获取指定值自定义函数代码

http://www.oschina.net/code/snippet_1162040_48289 [1].[代码] ty_tbl_str_split 跳至 [1] [2] [3...
  • e_wsq
  • e_wsq
  • 2016年03月07日 14:06
  • 2560

幼稚是技术人员最大的缺陷

这周一,把公司的一位创业元老逼走了,原因是他停止了学习,不愿意改变自己来适应公司的发展,认为自己的能力就这么多了,无法再提高,而他负责的东西,往往有头无尾,有始无终,哪怕逼着做好的几样,也是小问题频发...
  • bugouyonggan
  • bugouyonggan
  • 2014年01月19日 14:36
  • 754

脱离幼稚、变得成熟

人成熟与不成熟跟年龄没有关系,人成熟不成熟,就是你能不能站在对方的角度去看待事物。就是能不能把我的世界变成你的世界。这个社会有很多的成年人,还没有脱离幼稚的行为。一点小事情就跟别人争来争去。 人不成...
  • xiaoyangger
  • xiaoyangger
  • 2012年09月15日 11:24
  • 2314

初学c时自己写的一个通讯录 很幼稚

  • 2010年06月25日 13:00
  • 5KB
  • 下载

社会就是这样现实,别再幼稚下去了,认真读过,你会成长很多… - Qzone日志

|返回日志列表 转载自 243868373 2011年01月26日 10:06 阅读(loading...) 评论(0) 分类:个人日记 引导语:无论你是男人,还是女人,做人,想成功,下面就是你...
  • sdyj08ps558
  • sdyj08ps558
  • 2012年06月02日 14:13
  • 559

【智慧】人的这五个特征,其实是幼稚的表现!!!

第一个特征:就是立即要回报 他不懂得只有春天播种,秋天才会收获。很多人在做任何事情的时候,刚刚付出一点点,马上就要得到回报。(学钢琴,学英语等等,刚开始就觉得难,发现不行,立即就要放弃。)很...
  • zenglinshan
  • zenglinshan
  • 2015年10月31日 23:57
  • 455

**一个好幼稚的javascript变量加减的小东西**

我不知道为什么结果和想象中的不一样 - 先看一个简单代码 -再看一个简单代码 分析 -第一感觉 上下应该是一样的啊 -小写c的ASCII+1?...
  • sinat_35695255
  • sinat_35695255
  • 2016年07月25日 15:53
  • 311

C语言杀毒代码 比较幼稚点哈

  • 2010年12月17日 13:55
  • 5KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:json解析,我的幼稚
举报原因:
原因补充:

(最多只允许输入30个字)