新手上路(一):基于android平台的投票应用的开发(三)之问题整理
来源:互联网 发布:个人财务报表软件 编辑:程序博客网 时间:2024/06/06 14:20
今天这个问题也很有意思 !json串的一个问题!,而且我依然很没想明白!
下面这个json串用json校验工具检测的时候是错的 ,但是我android端的解析时候能够解析出来 ,得到数据:
[{type:饮食},{type:娱乐},{type:明星},{type:体育},{type:科技},{type:游戏},{type:书籍},{type:影视},{type:汽车}]我的组织的代码是:
List<Type> types = new TypeService().getTypes();StringBuilder sb = new StringBuilder();sb.append("[");for(Type type: types){sb.append("{").append("type").append(":").append(type.getTypeContent());sb.append("}").append(",");}
Type的typeContent属性是string类型的;
我的解析的代码:
public static List<String> getTypeFromJSON(String json) throws IOException, JSONException {List<String> types = new ArrayList<String>();Log.i("json1",json);JSONArray array = new JSONArray(json);for(int i=0;i<array.length();i++){JSONObject obj = array.getJSONObject(i);types.add(obj.getString("type"));}return types;
这里解析出的结果是对的:05-21 13:37:07.986: I/Dubug(360): [饮食, 娱乐, 明星, 体育, 科技, 游戏, 书籍, 影视, 汽车]
我还有一个json串:
[{topicContent:你好吗?,topicResult:0,topicStartTime:2013-05-17 00:00:00.0,userName:byk,userHeadImage:male,userTopicId:1},{topicContent:xiamiannagegenghao?,topicResult:0,topicStartTime:2013-05-20 00:00:00.0,userName:byk,userHeadImage:male,userTopicId:4},{topicContent:xiamian nage genghao?,topicResult:0,topicStartTime:2013-05-20 00:00:00.0,userName:byk,userHeadImage:male,userTopicId:5}]这个串用json校验工具校验的时候是错的,android来解析的时候也是错的 ;
我的组织的代码是:
List<HashMap<String , String>> result = new HomePageService().getResults();StringBuilder sb = new StringBuilder();System.out.println("一共有几个记录?:"+result.size());if(result == null){sb.append("");}else{sb.append("[");for(HashMap<String , String> item : result){sb.append("{"); //"\""for(Map.Entry<String, String> itemEntry : item.entrySet()){ //json的key应该用引号括住sb.append(itemEntry.getKey()).append(":").append(itemEntry.getValue());sb.append(",");}sb.deleteCharAt(sb.length()-1);sb.append("}").append(",");}sb.deleteCharAt(sb.length()-1);sb.append("]");}
解析和上面一样 ,JSONArrray array = new JSONArray(json);
我发现错了以后查了几个资料,然后又把这个组织的代码改了以后他就对了,只是对name和value都加了个引号:
List<HashMap<String , String>> result = new HomePageService().getResults();StringBuilder sb = new StringBuilder();System.out.println("一共有几个记录?:"+result.size());if(result == null){sb.append("");}else{sb.append("[");for(HashMap<String , String> item : result){sb.append("{"); //"\""for(Map.Entry<String, String> itemEntry : item.entrySet()){ //json的key应该用引号括住sb.append("\""+itemEntry.getKey()+"\"").append(":").append("\""+itemEntry.getValue()+"\"");sb.append(",");}sb.deleteCharAt(sb.length()-1);sb.append("}").append(",");}sb.deleteCharAt(sb.length()-1);sb.append("]");}
然后输出的json串变成了这样:
[{"topicContent":"你好吗?","topicResult":"0","topicStartTime":"2013-05-17 00:00:00.0","userName":"byk","userHeadImage":"male","userTopicId":"1"},{"topicContent":"xiamiannagegenghao?","topicResult":"0","topicStartTime":"2013-05-20 00:00:00.0","userName":"byk","userHeadImage":"male","userTopicId":"4"},{"topicContent":"xiamian nage genghao?","topicResult":"0","topicStartTime":"2013-05-20 00:00:00.0","userName":"byk","userHeadImage":"male","userTopicId":"5"}]
后来我又把组织type那个json的代码稍微改了一下 ,把形式和那个组织Topic的那个错的代码改成一样,发现它的输出依然是错的 ,但是依然可以解析出结果来,代码如下:
List<Type> types = new TypeService().getTypes();StringBuilder sb = new StringBuilder();String str = "type";sb.append("[");for(Type type: types){sb.append("{").append(str).append(":").append(type.getTypeContent());sb.append("}").append(",");}sb.deleteCharAt(sb.length()-1);sb.append("]");输出的json:
[{type:饮食},{type:娱乐},{type:明星},{type:体育},{type:科技},{type:游戏},{type:书籍},{type:影视},{type:汽车}]
本来以为是因为引号的错 ,但是上面那个topic 的json的出错也证明了是引号的错,但是下面这个改了以后的type的代码,又好像要把我这个结论推翻了!
哪位看官给个具体而且合理的解释好不……!!!!
十分感谢!
- 新手上路(一):基于android平台的投票应用的开发(三)之问题整理
- 新手上路(一):基于android平台的投票应用的开发(三)之问题整理
- 新手上路(一):基于android平台的投票应用的开发(三)之问题整理
- 新手上路(一):基于android平台的投票应用的开发
- 新手上路(一):基于android平台的投票应用的开发(二)
- iOS应用开发新手上路(三):UITableViewCell的自定义
- android新手上路(一)---字符串为空的检测
- iOS应用开发之新手上路(一):UINavigationBar、UINavigationController和UINavigationItem
- 新手上路(三)
- Android应用开发Camera系列(一):SurfaceView实现相机预览demo--新手上路
- FPGA定时计数的问题(新手上路)
- 新手上路的日志
- 基于EasyAR的Android端AR应用开发(一)
- PHP新手上路(三)
- PHP新手上路(三)
- Android:新手必备的常用代码片段整理(一)
- PHP新手上路(一)
- PHP新手上路(一)
- RMI 的相关概念
- 文件打开方式
- Android各种蓝牙设备的UUID
- 小技巧:Mac下快速锁屏
- java一些基础问题(听说是java应聘者老被问的问题!)
- 新手上路(一):基于android平台的投票应用的开发(三)之问题整理
- Linux文件系统
- 如何加快C++代码的编译速度
- Dairy 20130521[优秀的程序员与代码的健壮性]
- 反编译工具jad的使用
- Fatal error: Call to undefined function: mysql_connect()解决方法
- 无测试,不编码
- 数组相加中第k大的数
- 杨辉三角(帕斯卡帕斯卡)