XML在java或.NET中转为Json的数组或对象数据时的处理

XML在java和.NET中转为Json数据时会出现这样一个问题,当节点中只有一个节点数据时是转换为对象,有多个节点则是转为数组,为了应对这个问题我们需要在解析的时候进行如下的处理,不然就会报异常:

数据1:数组格式

"Field": [
                    {
                        "@name": "APPROVE",
                        "@title": "审核人",
                        "#text": "维尼·地里"
                    },
                   {
                        "@name": "RECEIVEDTIME",
                        "@title": "任务到达时间",
                        "#text": "2014/7/31 15:30:13"
                    }
             ]

数据2:对象形式

"Field":        {
                        "@name": "APPROVE",
                        "@title": "审核人",
                        "#text": "维尼·地里"
                    }
                                  

同一个接口如果请求数据时可能会得到这样的两个数据,如果用同一套解析方法去解析,那肯定会报异常的,这当然不是我们想看见的,对吧?继续看看是如何解决的……

在解析方法中我们做如下判断:


/** 解决数据是对象还是数组的方法 **/

jb = new JSONObject(resData);

//获取该字段对象

Object objectData = jb.get("Field");

//判断是否为数组
       if (objectData instanceof JSONArray) {// 数组
             JSONArray jarrNames = jb.getJSONArray("Field");
             for (int i = 0; i < jarrNames.length(); i++) {
                   mInfops = new ReviewPersonListInfo();
                   JSONObject jbt = jarrNames.getJSONObject(i);
                   parseObjectData(mInfops, jbt);
                   mListps.add(mInfops);
        }
       } else {// 对象
            JSONObject objName = jb.getJSONObject("Field");
            mInfops = new ReviewPersonListInfo();
            parseObjectData(mInfops, objName);
            mListps.add(mInfops);
       }

解决问题的关键代码就是红色的两句,只要你的代码中如此去做了,不管他来什么样的数据基本都不是问题,当然如果码友有更好的解决方式的请一起分享,谢谢!

XML在java或.NET中转为Json的数组或对象数据时的处理

时间: 2024-10-12 10:01:19

XML在java或.NET中转为Json的数组或对象数据时的处理的相关文章

Java和JavaScript中使用Json方法大全

林炳文Evankaka原创作品. 转载请注明出处http://blog.csdn.net/evankaka   摘要:JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 它基于ECMAScript的一个子集. JSON採用全然独立于语言的文本格式,可是也使用了相似于C语言家族的习惯(包含C.C++.C#.Java.JavaScript.Perl.Python等).这些特性使JSON成为理想的数据交换语言. 易于人阅读和编写.同一时候也易于机器解析和生成

js 数组、对象转json 以及json转 数组、对象

1.JS对象转JSON 方式:JSON.stringify(obj) var json = {"name":"iphone","price":666}; //创建对象: var jsonStr = JSON.stringify(json); //转为JSON字符串 console.log(jsonStr); 2.JS数组转JSON //数组转json串 var arr = [1,2,3, { a : 1 } ]; JSON.stringify(

C/C++,Java,PHP,JavaScript,Json数组、对象赋值时,最后一个元素后面是否可以带逗号?

1 C,C++,Java,PHP都能容忍末尾的逗号 C,C++,Java中对数组赋值时,最后一个元素末尾的逗号可有可无.下面两行代码对这些语言来说是等效的. int a[] = {1,2,3}; /* 正确 */ int a[] = {1,2,3,}; /* 正确 */ PHP这一点也继承了C的特点,下面的两行代码等效. $a = array(1,2,3); /* 正确 */ $a = array(1,2,3,); /* 正确 */ 2 JavaScript视末尾逗号为语法错误! 然而到了Jav

C#中,JSON字符串转换成对象。

在前台提交(post)的数据中.除了强类型的数据外,还有一个额外的json数据提交 在这里我的办法是,在前台把json对象转换成字符串,然后提交. 测试demo 前台: @using(Html.BeginForm()) { <input type="text" id="json" name="json"/> <input type="submit" value="提交"/> } &l

【Java】Arrays中之于int数组的方法,Integer数组与int数组

在java.util.*中,Arrays似乎很有用的样子,似乎用里面的方法就可以避免使用for循环要自己写对数组的查找.初始化.排序等方法了. 一.先说说Arrays中对整形数组真的有用的方法 1.首先是Arrays.toString() 一般,直接用System.out.println()打印数组,比如这样: int array[] = { 8, 7, 100, 88, 6, 4, 5, 33, 10 }; System.out.println(array); 出来的结果是一堆乱码: [Lja

Java编程实现中英混合字符串数组按首字母排序的方法

在Java中对于字符串数组的排序,我们可以使用Arrays.sort(String[])方法很便捷的进行排序.例如: ? 1 2 3 4 5 6 7 String[] arrays = new String[] { "gyu", "sdf", "zf", "大同", "收到", "地方", "三等分", "的人", "反对高铁"

Android中SharedPreferences和序列化结合保存对象数据

前言: 最近在做用户注册的时候,遇到了需要填写很多表单数据,不可能在一页把所有的数据都展示完全,因此采用了分页的方式,由于在用户填写数据数据之后我们需要对用户填写的数据进行暂时的记录的,当用户会到此页时,还能查看和修改.刚开始解决这个问题我们一定会从数据的大小的角度来解决,于是就有以下几种方式: A.运用临时静态变量static来保存到内存中                               B.运用SharedPreferences来保存                       

数据库表中不建索引,在插入数据时,通过sql语句防止重复添加

sql 语句 INSERT IGNORE INTO table(aaa,bbb) SELECT '1111','2222' FROM DUAL WHERE NOT EXISTS( SELECT id FROM table WHERE bbb= '2222' ) mybatis 中代码 <insert id="addItemCharacteristic" parameterType="com.orderalliance.entity.CharacteristicDTO&q

如何正确的使用json?如何在.Net中使用json?

什么是json json是一种轻量级的数据交换格式,由N组键值对组成的字符串,完全独立于语言的文本格式. 为什么要使用json 在很久很久以前,调用第三方API时,我们通常是采用xml进行数据交互,但往往xml包含更多冗余的标记字符,在传输较大数据时,相较于xml,json显得更加简洁,轻量. 与此同时,javascript能更好的支持json,以及它更加便捷的解析方式,这使得我们在编程过程中能够更加方便,快捷的进行开发. 慢慢地,我们已经渐渐向json转变,越来越多的人开始使用json进行数据