1. 程式人生 > >將返回的XML資料轉化為JSON格式

將返回的XML資料轉化為JSON格式

程式碼如下:

/**
 * 轉換xml為物件形式
 * @return {Object}
 * @param {XMLHttpRequest} elXML
 */
$.fn.toObject = function (){
    if (this==null) return null;
    var retObj = new Object;
    buildObjectNode(retObj,/*jQuery*/this.get(0));
    return $(retObj);
    function buildObjectNode(cycleOBJ,/*Element*/elNode){
        /*NamedNodeMap*/
        var nodeAttr=elNode.attributes;
        if(nodeAttr != null){
            if (nodeAttr.length&&cycleOBJ==null) cycleOBJ=new Object; 
            for(var i=0;i<nodeAttr.length;i++){
                cycleOBJ[nodeAttr[i].name]=nodeAttr[i].value;
            }
        }
        var nodeText="text";
        if (elNode.text==null) nodeText="textContent";
        /*NodeList*/
        var nodeChilds=elNode.childNodes;
        if(nodeChilds!=null){
            if (nodeChilds.length&&cycleOBJ==null) cycleOBJ=new Object; 
            for(var i=0;i<nodeChilds.length;i++){
                if (nodeChilds[i].tagName!=null){
                    if (nodeChilds[i].childNodes[0]!=null&&nodeChilds[i].childNodes.length<=1&&(nodeChilds[i].childNodes[0].nodeType==3||nodeChilds[i].childNodes[0].nodeType==4)){
                        if (cycleOBJ[nodeChilds[i].tagName]==null){
                            cycleOBJ[nodeChilds[i].tagName]=nodeChilds[i][nodeText];
                        }else{
                            if (typeof(cycleOBJ[nodeChilds[i].tagName])=="object"&&cycleOBJ[nodeChilds[i].tagName].length){
                                cycleOBJ[nodeChilds[i].tagName][cycleOBJ[nodeChilds[i].tagName].length]=nodeChilds[i][nodeText];
                            }else{
                                cycleOBJ[nodeChilds[i].tagName]=[cycleOBJ[nodeChilds[i].tagName]];
                                cycleOBJ[nodeChilds[i].tagName][1]=nodeChilds[i][nodeText];
                            }
                        }
                    }else{
                        if (nodeChilds[i].childNodes.length){
                            if (cycleOBJ[nodeChilds[i].tagName]==null){
                                cycleOBJ[nodeChilds[i].tagName]=new Object;
                                buildObjectNode(cycleOBJ[nodeChilds[i].tagName],nodeChilds[i]);
                            }else{
                                if (cycleOBJ[nodeChilds[i].tagName].length){
                                    cycleOBJ[nodeChilds[i].tagName][cycleOBJ[nodeChilds[i].tagName].length]=new Object;
                                    buildObjectNode(cycleOBJ[nodeChilds[i].tagName][cycleOBJ[nodeChilds[i].tagName].length-1],nodeChilds[i]);
                                }else{
                                    cycleOBJ[nodeChilds[i].tagName]=[cycleOBJ[nodeChilds[i].tagName]];
                                    cycleOBJ[nodeChilds[i].tagName][1]=new Object;
                                    buildObjectNode(cycleOBJ[nodeChilds[i].tagName][1],nodeChilds[i]);
                                }
                            }
                        }else{
                            cycleOBJ[nodeChilds[i].tagName]=nodeChilds[i][nodeText];
                        }
                    }
                }
            }
        }
    }
}

/**
 * @return {Element}
 * @param {String} _url
 */
$.loadXML = function (_url ,_data){
    var ret;
    $.ajax({
    	data : _data ,
	    type:"post",
	    url:_url,
        async:false,
        dataType:"xml",
        success:function(xml){
            ret = xml;
        } ,
        error : function(){
        	Ext.MessageBox.show({
				 title: '提示',
				 msg: '操作失敗!',
				 buttons: Ext.MessageBox.OK,
 				 icon: Ext.MessageBox.INFO
             }); 
        }
      });
    return ret.documentElement;
}

使用

var xml = $.loadXML(contextPath+'/dataItemManagerAction.do?method=query' ,{
			'typeId' : 'deptNo'
		} );
var obj = $(xml).toObject().get(0);
var record = "";
Ext.each(obj.DataItem, function(value,index,a){
	record += "<option value='"+value.id+"'>"+value.name+"</option>"
}) ;
$('#'+id).append(record);

相關推薦

返回XML資料化為JSON格式

程式碼如下: /** * 轉換xml為物件形式 * @return {Object} * @param {XMLHttpRequest} elXML */ $.fn.toObject = function (){ if (this==null) return

php xml 資料化為json

PHP : public function xml_to_json($source) { if(is_file($source)){ //傳的是檔案,還是xml的string的判斷 $xml_array=simplexml_load_fil

jsonp格式資料化為json格式

如果前端請求獲取到的資料格式是jsonp,那麼我們就要轉換成json才能進行解析。 datas為jsonp資料格式的字串變數,如:jsonp({"a":"1234","b":9999}) // 下面是對獲取到的資料進行處理,把jsonp格式的資料處理成json格式的資料

Gson基本使用 -- 解析json,jsonArray。任意java物件化為json格式

    Gson是一款幫助解析Json,JsonArray和將Java物件轉換為Json格式的框架。一、將json解析為java物件先看效果圖程式碼實現1.在app模組的build.gradle的dependencies中引入Gsonimplementation 'com.g

利用Struts2框架,後臺資料化為JSON資料返回到前臺

1、第一步,配置web.xml,配置程式碼如下<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"

Kettle資料JSON格式後通過restClient傳送POST請求

第一步:處理好自己的資料,然後轉成JSON格式,使用JSON Output控制元件,並且把要轉成JSON併發送出去的欄位和元素名稱的對映關係對應好 資料條目行數選擇不填,填數字將會按照填寫的數字拆分資料,會導致後面傳送POST請求變成一條一條傳,效率低下 輸出值outputVal

mongoDB資料化為json---Python實現

前提背景 我們知道,mongoDB資料庫表中的一條資料(document)在呈現的時候,很像json。在平時的使用中,有時候會有這樣的需求:我們需要將資料庫中的資料讀出來,並將其傳送(例如ajax請求)到前端頁面去解析呈現。顯然此時,為了更容易解析,我們需要將

arrayToJson陣列化為json格式的js程式碼

//去除空格 function trim(str) {   return str.replace(/\s|\xA0/g,""); } /** *js陣列轉json * */ function arrayToJson(o) {  var r = [];  if (o=

java獲取excel中資料,並化為JSON格式

java通過poi讀取execl檔案,並且將其中的map格式和陣列格式的字串,轉化為相應的資料型別。 引入poi庫 讀取execl資料,轉化為json字串 將其中的map格式和陣列格式的字串,轉化為相應的資料型別 引入poi庫: <depen

map格式和string格式化為json格式

1.Map轉化為json  Map<String, Object> data; JSONObject dataJson = new JSONObject(data);//map轉化為json     String  cano= da

caffe中將jpg資料化為lmdb格式的檔案

Linux下caffe中如何將自己的jpg格式的圖片轉化為lmdb格式的檔案 本文利用caffe自帶的create_imagenet.sh檔案進行轉化,具體步驟如下。 1 資料準備 將圖片資料和標註分別放好 訓練資料放在train資料夾裡,測試資料放在v

在java中將各種型別資料化為json和從json中取資料

首先,匯入以下jar包 下面是各種型別轉化為json和從json中取出資料的程式 package jsontest; import java.util.ArrayList; import java.util.HashMap; import java.util.List;

javabean化為json格式的過濾 值為空或為null時的欄位

我們向前端傳資料時大多數都是先從從資料庫中查詢出來注入到實體類中然後轉化為json格式再傳給前端, 如果資料庫沒有實體類對應的欄位或者資料庫中的值為null,則對應的實體類的屬性為null。此時我們傳給前端的結果會是這樣,null值的欄位都為空 有時我們需要過濾掉這些空值的

jQuery 表單資料序列化為json格式

jQuery是在web應用中使用的指令碼語言之一,因其具有輕量級,易學易用等特點,已廣泛應用,其中的ajax封裝簡化了我們的應用,對其表單資料序列化用如下方法: 1.serialize()方法   格式:var data = $("#formID").serialize

通過Ajax技術,陣列型別資料轉換為JSON格式的物件

一、在伺服器端將list型別資料放入JSON物件中的方法  tjyjList=PxcscjbDAO.getTjyjList(pxcscjbQOMap);  //生成JSON物件,用來容納獲得的樣卷陣列  JSONObject jsonObject=new JSONObjec

如何寫一個巢狀實體類,賦值,化為JSON格式的字串

1、下面是實體類的寫法 import java.io.Serializable; import java.util.List; import com.alibaba.fastjson.JSONObject; //通過Serializable的toString方法,將類轉變為

使用正則表示式和json.loads,JSON檔案中的資料化為pandas.DataFrame

使用正則表示式和json.loads,將JSON檔案中的資料轉化為pandas.DataFrame 說在前面 在使用Scrapy框架(爬蟲框架)爬取網頁資訊時,會定義一個ITEMS,然後通過PIPLINE將資料寫入到JSON檔案中,如果是按行寫入,則最後得到的資料就不是一個標準J

java http返回xml格式json格式

package Yishikeji.Hbase.Admin.Hbase; import java.io.InputStream; import java.net.URL; import java.net.URLConnection; public class HdfsClu

ContextCapture生成的點雲資料化為PCL可以處理的資料格式

示例程式碼: file = open('point2.txt') # 讀取所需資料 val_list = file.readlines() list_x = [] list_y = [] list_z = [] list_rgb = [] for string in val_list:

自己手動標註的資料集(PascalVOC格式)化為.TFRecord格式

  “ 一個人如果不能學會遺忘,那將是很痛苦的事,別再自尋煩惱,快把痛苦的事給忘了吧!”   為了能夠使用Object Detection API~ 需要將資料集格式轉化為.TFRecord再進行訓練~ 至於, 如何使用Tensorflow官方的Objec