JSON数据(语义格式)多对象解析

来源:互联网 发布:android手机助手源码 编辑:程序博客网 时间:2024/06/05 10:54

1.当我们获取到语义之后得到的json数据格式排布一般是不规则的,如果对象较多对结构一时半会看不清结构的条理,可以将得到的json数据直接粘贴到在线解析的网站上,http://www.bejson.com/,这里可以得到按节点分类排好的清晰结构,同时可以检查json数据格式的正确与否。
示例

                    /**json数据格式                    * {                        "semantic": {                            "slots": {                                "datetime": {                                    "date": "2015-12-14",                                    "type": "DT_BASIC",                                    "time": "15:00:00",                                    "timeOrig": "3点"                                },                                "name": "clock",                                "content": "定一个3点的闹钟。"                            }                        },                        "rc": 0,                        "operation": "CREATE",                        "service": "schedule",                        "text": "定一个3点的闹钟。"                    }                    */

2.代码中解析

                     try {                        JSONObject jsonObject = new JSONObject(text);                        JSONObject semantic = jsonObject.getJSONObject("semantic");                        JSONObject slots = semantic.getJSONObject("slots");                        JSONObject datetime = slots.getJSONObject("datetime");                        String str = "日期:" + datetime.getString("date") + "," +                                "类型:" + datetime.getString("type") +  "," +                                "时间" + datetime.getString("time") +  "," +                                "时间口语:" + datetime.getString("timeOrig")+ "," +                                "待办事件名称:" + slots.getString("name") +  "," +                                "待办事件内容:" + slots.getString("content") +  "," +                                "执行操作:" + jsonObject.getString("operation")+ "," +                                "服务:" + jsonObject.getString("service")+ "," +                                "文本:" + jsonObject.getString("text");                        System.out.println(str);                    } catch (JSONException e) {                        e.printStackTrace();                    }

3.结果
这里写图片描述

ps:第一上传截图不知道为什么这么大,将就着看吧。另外有一个语音闹钟的例子,我会抽空总结一下上传到博客和github上,希望大家一起进步!

1 0
原创粉丝点击