简单的说Fruit之于html正如Gson之于Json,它能让你以一种注解的方式来描述解析的逻辑。下面是一个例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
public class FruitInfo { @Pick("div#only") private String favorite; @Pick(value = "div#only", attr = Attrs.OWN_TEXT) private String favoriteOne; @Pick(value = "div#only", attr = Attrs.HTML) private String favoriteHtml; @Pick(value = "img.apple", attr = Attrs.SRC) private String img; @Pick(value = "a.author", attr = Attrs.HREF) private String blog; @Pick("div.fruit") private List<Item> items; public static class Item { @Pick("strong.name") private String name; @Pick(".color") private String color; @Pick(attr = "id") private int id; } } |
这里就不做更多的说明了,GitHub项目主页有更丰富的使用说明,欢迎访问查看。
V2er就是开始时说的那个要开发的V2EX客户端。
这个APP的开发是从去年底开始一直到今年9月中旬基本开发完成,到现在也迭代了几个版本,在市场上也获得了很多用户的好评与鼓励平均评分在4.8,
欢迎各位朋友去下载使用,在Google Play及酷安市场已上架。
前几天也写了个基本版 - V2er-Core把V2er的核心代码开源了。这个小项目完整的展示了如何利用 “Fruit/Retrofit2/OKHttp3/RxJava” 来开发这种APP(数据大部分来源于html及少量json接口)
下面一段代码是最终实现后的Retrofit API Service代码样例(是不是看上去和使用真的Json接口一样)
1 2 3 4 5 6 7 |
public interface APIs { @GET("/api/topics/hot.json") @Json Observable<DailyHotInfo> dailyHot(); @GET("/") @Html Observable<NewsInfo> homeNews(@Query("tab") String tab); } |
最后再贴一张V2er-Core实现的效果图:
大家可以去这里找到它的源码。
In a row of trees, the i-th tree produces fruit with type tree[i]. You start at any tree of your choice, then repeatedly perform the following steps: Add one piece of fruit from this tree to your ba
在HTML5中增加了一项新的功能:自定义数据属性,也就是"data-*"自定义属性。在h5中通过使用data-为前缀来设置我们需要的自定义属性来进行一些数据的存放,在高级浏览器下可以通过脚本进行定义和数据存取。 <div id="div1" class="div1" data-id="ownId" data-fruit="ownFruit" data-id-and-fruit="a"><!--以上
在公司实际开发中,会经常遇到复选框全选、多选、统计选中个数的情况,所以总结研究了一些大神的帖子,汇总学习一下! 1.统计被选中复选框的个数 2.点击复选框,执行对应函数 3.获取复选框的状态 4.全选、取消全选动作 1.利用原生JS代码 1)统计被选中复选框的个数 checkbox要是属于同一组的,在复选框的属性内name=”mm”属性要写一致;这样可以通过下面代码获得同一组复选框 var nam
�� 网站推荐:【神级源码资源网】【摸鱼小游戏】 �� 风趣幽默的前端学习课程:��28个案例趣学前端 �� 想寻找共同学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 �� 免费且实用的计算机相关知识题库:��进来逛逛 给大家安利一个免费且实用的前端刷题(面经大全)网站,��点击跳转到网站。 本节教程我会带大家使用 HTML 、CSS和 JS 来制作一个 水果忍者游戏 本节示例将会实现如下所
Fruit 是 C++ 依赖注入框架。其灵感来自Java的Guice框架。它使用C ++元编程以及一些C ++ 11功能,以在编译时检测大多数注入问题。它允许将实现代码拆分为“组件”(也称为模块),这些组件可以组装成其他组件。然后从一个没有要求的组件中创建一个注入器,该注入器提供该组件公开的接口的实例。
本文向大家介绍Android Volley框架全面解析,包括了Android Volley框架全面解析的使用技巧和注意事项,需要的朋友参考一下 Volley简介 我们平时在开发Android应用的时候不可避免地都需要用到网络技术,而多数情况下应用程序都会使用HTTP协议来发送和接收网络数据。Android系统中主要提供了两种方式来进行HTTP通信,HttpURLConnection和HttpCl
本文向大家介绍Android SwipeMenuListView框架详解分析,包括了Android SwipeMenuListView框架详解分析的使用技巧和注意事项,需要的朋友参考一下 周末 特地把Android SwipeMenuListView(滑动菜单)的知识资料整理一番,以下是整理内容: SwipeMenuListView(滑动菜单) A swipe menu for ListView.
本文向大家介绍Spring AspectJ AOP框架注解原理解析,包括了Spring AspectJ AOP框架注解原理解析的使用技巧和注意事项,需要的朋友参考一下 什么是AspectJ AspectJ是一个面向切面的框架,它扩展了Java语言。AspectJ定义了AOP语法所以它有一个专门的编译器用来生成遵守Java字节编码规范的Class文件。 AspectJ是一个基于Java语言的AOP框
本文向大家介绍Quartz.Net调度框架配置解析,包括了Quartz.Net调度框架配置解析的使用技巧和注意事项,需要的朋友参考一下 在平时的工作中,估计大多数都做过轮询调度的任务,比如定时轮询数据库同步,定时邮件通知等等。大家通过windows计划任务,windows服务等都实现过此类任务,甚至实现过自己的配置定制化的框架。那今天就来介绍个开源的调度框架Quartz.Net(主要介绍配置的实现
本文向大家介绍Android注解框架对比分析,包括了Android注解框架对比分析的使用技巧和注意事项,需要的朋友参考一下 Java的注解(Annotation)相当于一种标记,在程序中加入注解就等于为程序打上某种标记,标记可以加在包,类,属性,方法,本地变量上。然后你可以写一个注解处理器去解析处理这些注解(人称编译时注解),也可以在程序运行时利用反射得到注解做出相应的处理(人称运行时注解)。 开