if (!this.HTTPServiceUtils) {
HTTPServiceUtils = {
};
}
(function () {
var XMLHttpReq ={
_objPool: [],//xmlhttp建立连接池
_getInstance:function (){
for (var i = 0; i < this._objPool.length; i ++){
if (this._objPool[i].readyState == 0 || this._objPool[i].readyState == 4){
return this._objPool[i];
}
}
// IE5中不支持push方法
this._objPool[this._objPool.length] = this._createObj();
return this._objPool[this._objPool.length - 1];
},
_createObj: function (){
if (window.XMLHttpRequest){
var objXMLHttp = new XMLHttpRequest();
}else{
var MSXML = ['MSXML2.XMLHTTP.5.0', 'MSXML2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP', 'Microsoft.XMLHTTP'];
for(var n=0; n<MSXML.length; n++){
try{
var objXMLHttp = new ActiveXObject(MSXML[n]);
break;
}catch(e){}
}
}
// mozilla某些版本没有readyState属性
if (objXMLHttp.readyState == null){
objXMLHttp.readyState = 0;
objXMLHttp.addEventListener("load", function (){
objXMLHttp.readyState = 4;
if(typeof objXMLHttp.onreadystatechange == "function"){objXMLHttp.onreadystatechange();}
}, false);
}
return objXMLHttp;
},
// 发送请求(方法[post,get], 地址, 数据, 回调函数,数据模板)
sendReq: function (method, url, data, callback,dataset){
var objXMLHttp = this._getInstance();
with(objXMLHttp){
try{
open(method, url, true);
// 设定请求编码方式
setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
send(data);
onreadystatechange = function (){
if (objXMLHttp.readyState == 4 && (objXMLHttp.status == 200 || objXMLHttp.status == 304)){
callback(objXMLHttp,dataset);
}
}
}catch(e){alert(e);}
}
}
};
var DynamicFields;//MAP格式 DynamicFields.keys()所有的键 DynamicFields.values()所有的值
var Datasetname;
var Dataset;
var _xml;
//设置map字段
function setMap(_dynamicfields){
var map = new Map();//创建map对象
var fields = new Array();
fields = fields.str2arr(_dynamicfields);
for(var i in fields) {
if(!isNaN(i)){
var xx = new Array();
xx = fields[i].split(":");
map.put(xx[0],xx[1]);
}
}
DynamicFields = map;
}
//数组对象的扩展增加一个字串转数组的方法
Array.prototype.str2arr=function(string){
var s;
if(string.indexOf(";")!=-1) s=string.split(";");
if(string.indexOf("^")!=-1) s=string.split("^");
arr=this;
for(i=0;i<s.length;i++){
arr = arr.concat(s[i]);
}
return arr;
}
//清除数组内容
Array.prototype.clear=function(){
this.splice(0,this.length);
}
// 回调函数jsonResponse
function jsonResponse(originalRequest,_dataset) {
var fields = new Array();
fields = _dataset._fields.keys();
var name = _dataset._name;
var myobj = eval("(" + originalRequest.responseText + ")");
_xml = JsonToXml(myobj,name,fields)
InitialDataset(_xml,_dataset);
}
//json 到 xml 的转换
function JsonToXml(_jsonobj,_datasetname,_fields){
var xml = "<xml id=\"__"+_datasetname+"\" style=\"display: none\">";
xml = xml +"<records possibleCount=\"1\" pageCount=\"1\" loadedPages=\"1\">";
var recNum=0;
var itemCount = _jsonobj.itemCount;
var fieldsCount = _fields.length;
while(itemCount>0)
{
xml=xml+"<record id=\""+(recNum+1)+"\" pageIndex=\"1\" state=\"none\"><new>";
xml=xml+"s";//选择框占位符 true 表示勾选框勾住
for(var i=0;i<fieldsCount;i++){
xml=xml+"^"+_jsonobj.list[recNum][_fields[i]];
}
xml= xml+"</new></record>";
recNum++;
itemCount--;
}
xml = xml +"</records>";
xml = xml +"</xml>";
return xml;
}
//初始化数据集
function InitialDataset(_xml,_dataset)
{
var XMLDoc;
_dataset.clearData();
XMLDoc = new ActiveXObject("Msxml2.DOMDocument");
XMLDoc.async = false;
if (XMLDoc.loadXML(_xml))
{
$cq=XMLDoc.getElementsByTagName("xml/records")[0];
_dataset.$8p($cq,true,null,null);
return _dataset;
}
else
{
alert("初始化数据集错误!");
}
}
if(typeof HTTPServiceUtils.httpGet !== 'function'){
HTTPServiceUtils.httpGet = function(url,dataset){
XMLHttpReq.sendReq("get",url,null,jsonResponse,dataset);
}
}
if(typeof HTTPServiceUtils.httpPost !== 'function'){
HTTPServiceUtils.httpPost = function(url,parameters,dataset){
XMLHttpReq.sendReq("post",url,parameters,jsonResponse,dataset);
}
}
//初始化表格
if(typeof HTTPServiceUtils.initDataTable !== 'function'){
HTTPServiceUtils.initDataTable = function(_datatable,_dataset){
_datatable.addColumn("select");
for(var i=0;i<_dataset._fields.size();i++){
var _f = _datatable.addColumn(_dataset._fields.element(i).key);
_f.setField(_dataset._fields.element(i).key)
_f.setLabel(_dataset._fields.element(i).value)
}// DynamicFields.keys()所有的键 DynamicFields.values()所有的值
}
}
//通过模板取得一个数据集实例
if(typeof HTTPServiceUtils.initDataset !== 'function'){
HTTPServiceUtils.initDataset = function(_dynamicfields,_datasetname,_keyname){
Datasetname = _datasetname;
Dataset = BX.create("Dataset",null,_datasetname,"");
setMap(_dynamicfields);
Dataset._name = Datasetname;
Dataset._fields = DynamicFields;
Dataset._keyname = _keyname;
Dataset.addField("select","string");
for(var i=0;i<DynamicFields.size();i++){
var _f = Dataset.addField(DynamicFields.element(i).key,"string");
_f.setLabel(DynamicFields.element(i).value);
if(DynamicFields.elements[i].key == "key")
_f.setToolTip(DynamicFields.element(i).value);
}
return Dataset;
}
}
})();
分享到:
相关推荐
6. **返回XML字符串**:最后,组合所有的XML元素,形成一个完整的XML字符串。 ```javascript function jsonToXml(json) { // ...实现转换逻辑 } ``` 在实际开发中,往往会有现成的库,如`xml2json`和`json2xml`,...
压缩包中的`xmlTojson`可能是一个简单的实现,用于将XML字符串转换为JSON对象。 在处理这两种格式时,需要考虑数据的兼容性、大小和解析效率。对于简单且不需要严格结构验证的场景,JSON通常是更好的选择;而在需要...
- JQuery - jquery.json2xml.js - jquery.xml2json.js 2. XML 字符串转换成 JSON 对象 $.xml2json(str); 3. JSON 对象转换成 XML 字符串 $.json2xml(obj);
json转对象json转对象json转对象json转对象json转对象json转对象json转对象json转对象json转对象json转对象json转对象json转对象json转对象json转对象json转对象json转对象json转对象json转对象json转对象json转对象...
例如,它可能包含一个名为`JsonToXmlConverter`的类,该类具有将JSON字符串或对象转化为XML字符串的方法。使用这个库,开发者无需手动编写转换代码,只需调用相应的API,即可完成转换任务,大大简化了开发流程。 在...
提供JSON字符串和一个可选的根元素名称,该方法会返回一个`XmlDocument`对象。 ### 版本兼容性与注意事项 - Newtonsoft.Json.dll库支持.NET Framework 2.0及更高版本,因此在这些版本的项目中可以直接使用。 - 在...
这些库组合在一起,可以构成一个完整的解决方案,将JSON数据转换为XML格式。使用这些库的开发者可以构建自定义的转换器,根据需求定制JSON对象到XML元素的映射规则,或者利用已有的开源工具如json-lib提供的函数,...
例如,如果Json对象中有数组,你可以使用循环遍历数组,然后为每个元素创建一个Xml元素。 总的来说,VB.NET提供了足够的工具来处理Json和Xml之间的转换。理解这两个数据格式的基本特性和转换方法,有助于在开发过程...
在C++中将结构体转换为JSON或XML,我们需要定义一个映射规则,将结构体的每个成员对应到JSON或XML的键值。这通常涉及到反射(reflection)的概念,即程序能够自我检查其结构。由于C++标准库不直接支持反射,我们通常...
该方法首先创建了一个Document对象,然后添加一个node元素,接着遍历Map对象的keySet,生成key元素,并将其添加到node元素中。最后,使用doc2String方法将Document对象转换为xml字符串。 xml和list之间的转换 xml...
// 假设有一个Person类 Person person = new Person("John", 30); // JAXB转XML JAXBContext jaxbContext = JAXBContext.newInstance(Person.class); String xml = jaxbContext.createMarshaller().marshal...
这个压缩包“xml转json包与教程”提供了相关的类库和教程,帮助开发者完成这一任务。下面将详细介绍这个过程中的关键知识点: 1. **XML解析器**:在Java中,处理XML数据通常使用DOM(Document Object Model)、SAX...
3. **xstream-1.3.1.jar**:XStream是另一个Java库,它提供了一种简单的方式来序列化和反序列化Java对象为XML。在XML到JSON转换过程中,XStream可能首先用于将XML数据转换为Java对象,然后这些对象再由Json-lib处理...
在这个类中,开发者可能定义了一个方法,如`jsonToBean忽略大小写(String jsonString, Class<T> clazz)`,该方法接受一个JSON字符串和目标Java对象的Class类型,然后进行转换。 在Java中,使用Gson库进行JSON处理时...
上述代码中,`xmlToJson`方法接收一个XML字符串,通过`XmlMapper`的`readTree`方法将其解析为JsonNode对象,然后利用`writeValueAsString`方法将JsonNode转换为JSON字符串。相反,`jsonToXml`方法则将JSON字符串解析...
"json和xml互转.jar"是一个Java应用程序,其主要功能是帮助开发者将JSON字符串转换为XML字符串,反之亦然。这个工具的特点是简单、方便、快捷,简化了开发过程中这两种数据格式之间的转换工作。 首先,让我们了解...
在JavaScript中,你可以通过创建一个JSON对象,然后调用这个插件的方法,将其转换成XML格式。这样可以方便地将JSON数据发送到服务器,或者在需要XML结构的环境中使用。 ```javascript var json = { "person": { ...
java工程源码实现xml和json的互转,工程已包含所jar包:commons-beanutils-1.7.0.jar、commons-collections-3.1.jar、commons-lang-2.5.jar、commons-logging.jar、ezmorph-1.0.3.jar、json-lib-2.4-jdk15.jar、xom-...
标题"01.JsonToXml.zip"暗示了这是一个关于Delphi编程的压缩包,其中包含的代码或工具专注于将JSON数据转换为XML格式,反之亦然。这在需要将JSON格式的数据用于不支持这种格式的应用程序,或者需要以更结构化的方式...
java中json 转xml 的jar