java动态JSON数据解析
2015-08-25 16:52
405 查看
大家也许会好奇,什么叫动态json数据,其实我也不是很确定叫这个名字,暂时先这么叫着吧,之前开发一款执法记录仪的时候(后台并不清楚如何实现),获取记录仪上的视频图片信息时,给我返回了一种独特的json数据,格式是这样的
看着和普通的json数据很像,但仔细一看,key和value居然全是变化的,key是文件名,value是时间,一下子没了主意,什么json解析的框架都不起作用,返的什么东西啊,我该如何拿到里面的数据……
网络上搜了很多,但其实不知道该如何所搜这个问题,苦恼了下,准备冷静下来分析,首先,我需要的格式是这样的
如果是这样就好办了,于是就顺着这个思路往下思考,问题的焦点就集中到了怎么将那别扭的json格式转换为自己想要的json格式,json数据的本质也就是普通的字符串,所以看看能不能用String的一些函数来处理,果然这个思路是对的,找到了一个replace方法,测试代码
打印结果
哈哈,通过这两行代码的转换,终于可以愉快的玩耍了,有时候,换一个思路,问题并没有那么难
[code][ { "file1": "date1" }, { "file2": "date2" }, { "file3": "date3" }, { "file4": "date4" } ]
看着和普通的json数据很像,但仔细一看,key和value居然全是变化的,key是文件名,value是时间,一下子没了主意,什么json解析的框架都不起作用,返的什么东西啊,我该如何拿到里面的数据……
网络上搜了很多,但其实不知道该如何所搜这个问题,苦恼了下,准备冷静下来分析,首先,我需要的格式是这样的
[code][ { "file":"file1", "date":"date1" }, { "file":"file2", "date":"date2" }, { "file":"file3", "date":"date3" }, { "file":"file4", "date":"date4" } ]
如果是这样就好办了,于是就顺着这个思路往下思考,问题的焦点就集中到了怎么将那别扭的json格式转换为自己想要的json格式,json数据的本质也就是普通的字符串,所以看看能不能用String的一些函数来处理,果然这个思路是对的,找到了一个replace方法,测试代码
[code]public class Test { public static void main(String[] args) { String data = "[\n" + " {\n" + " \"file1\": \"date1\"\n" + " },\n" + " {\n" + " \"file2\": \"date2\"\n" + " },\n" + " {\n" + " \"file3\": \"date3\"\n" + " },\n" + " {\n" + " \"file4\": \"date4\"\n" + " }\n" + "]"; data = data.replace("{\n" + " \"","{\n" + " \"file\":\""); data = data.replace(": \"",",\n" + " \"date\":\""); System.out.println("data = " + data); } }
打印结果
[code]data = [ { "file":"file1", "date":"date1" }, { "file":"file2", "date":"date2" }, { "file":"file3", "date":"date3" }, { "file":"file4", "date":"date4" } ] Process finished with exit code 0
哈哈,通过这两行代码的转换,终于可以愉快的玩耍了,有时候,换一个思路,问题并没有那么难
相关文章推荐
- Java反射机制
- 使用 Eclipse 插件提高代码质量,让开发自动化。
- Struts2_2_第一Struts2应用
- JavaMail发送邮件
- Java笔记——JavaMail发送邮件
- Eclipse快捷键使用解说
- 理解Java之泛型
- Introduction to Java Programming编程题9.9<二进制转十六进制>
- Java String的关键点
- java集群技术
- 利用Spring将配置文件读入Map
- Eclipse常见设置及快捷键使用总结(更新中)
- hdu3887 Counting Offspring(dfs序+树状数组)
- java AES加密解密方法
- Java中各种正则表达式验证[邮箱、密码前后空格、日期合法、IP]
- java 获取两个日期的相差天数
- struts2之文件上传
- Hibernate + jbosstools 整合、配置、测试详解
- Java排序算法
- JAVA设计模式之单例模式