使用Groovy把json字符串转成Java代码
来源:互联网 发布:淘宝私人定制怎么设置 编辑:程序博客网 时间:2024/06/08 23:34
使用Groovy把json字符串转成Java代码
最近项目里面的通信接口都是json,所以安卓客户端这边需要写很多的Java bean,很多的时候,Java bean都是可以自动生成的,但是有的不能满足自己的需要,所以我就用Groovy来实现了。
至于为什么用Groovy,因为Groovy是基于JVM的脚本语言,和Java很像,最重要的时,它能兼容Java代码。
比如下的Json
{ "cityId": 18, "cityName": "西安", "provinceId": 27, "cityOrder": 1}
我们在写Java Bean的时候如下
public class CityInfo{ @SerializedName("cityId") public String cityId; // 18, @SerializedName("cityName") public String cityName; // 西安, @SerializedName("provinceId") public String provinceId; // 27, @SerializedName("cityOrder") public String cityOrder; // 1 // setter / getter}
下面是Groovy的简单实现,还是只是简单的生成一些代码,后面考虑实现复制点的。
def jsonSb = new StringBuffer()new File("json.txt").eachLine { jsonSb.append(it.trim() + "\n")}def jsonStr = jsonSb.replaceAll("\"", "").replaceAll("“", "").replaceAll("”", "").replaceAll(":", "; // ")def targetSb = new StringBuffer()jsonStr.split("\n").each { line -> if (line == null || line.trim().length() == 0) { return } strArray = line.split(";") if (strArray == null || strArray.length < 2) { targetSb.append(line + "\n") return } def (first, last) = strArray if (((String) first).contains("_")) { String firstStr = first; def rename = new StringBuffer(); boolean isLastUnline = false; for (int i = 0; i < firstStr.length(); i++) { char c = firstStr.charAt(i) if (c == '_') { isLastUnline = true continue } if (isLastUnline) { rename.append(c.toUpperCase()) isLastUnline = false } else { rename.append(c) } } targetSb.append("\n\t@SerializedName(\"$first\")\n") targetSb.append("\tpublic String $rename;$last\n") } else { targetSb.append("\n\t@SerializedName(\"$first\")\n") targetSb.append("\tpublic String $line\n") }}println()println targetSb
运行结果如下
@SerializedName("cityId")public String cityId; // 18,@SerializedName("cityName")public String cityName; // 西安,@SerializedName("provinceId")public String provinceId; // 27,@SerializedName("cityOrder")public String cityOrder; // 1
0 0
- 使用Groovy把json字符串转成Java代码
- 使用Gson把json字符串转成Map
- java中把List转成json数组格式的字符串
- 把普通的java对象转成json字符串
- js把json字符串转成json对象
- 用JAVA把JSON字符串转成JSON格式化的字符串 - tooyond
- 把字符串转成uiimage 经典代码
- 如何把Kotlin代码转成java代码,如何把java代码转成kotlin代码
- Gson把对象转成json格式的字符串
- gson将JSON字符串转成Java对象
- Java中Json对象转成xml字符串
- java 字符串转成 json 数组并且遍历
- java 将json字符串转成复杂对象
- java 实体类转成json字符串
- java 字符串转成 json 数组并且遍历
- java 字符串转成 json 数组并且遍历
- java 字符串转成 json 数组并且遍历
- java对象转成JSON字符串,避免 $ref
- eclipse编辑界面为文本编辑或其他非java编辑字体变灰问题解决
- MATLAB中用imshow()显示图像与图像的数据类型的关系
- FFprobe使用指南
- timer+thread 入门,简单封装
- Python练习题(1)_斗地主实现
- 使用Groovy把json字符串转成Java代码
- hdu2037贪心
- EF实现分页查询+条件查询+排序
- matlab中遇到的一些问题
- 一例 Hive join 优化实战
- Isomorphic Strings
- python爬取京东所有iphone的价格和名称
- (含有头指针以及尾指针)单链表各类功能的实现
- 检测内存泄露