您的位置:首页 > 编程语言 > Java开发

java动态JSON数据解析

2015-08-25 16:52 405 查看
大家也许会好奇,什么叫动态json数据,其实我也不是很确定叫这个名字,暂时先这么叫着吧,之前开发一款执法记录仪的时候(后台并不清楚如何实现),获取记录仪上的视频图片信息时,给我返回了一种独特的json数据,格式是这样的

[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


哈哈,通过这两行代码的转换,终于可以愉快的玩耍了,有时候,换一个思路,问题并没有那么难
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: