㈠ js中 怎麼將json對象轉化成字元串
ie8以前的瀏覽器要自己寫代碼手工轉。
text="["+
"{id:「+json[0]+"}"
"{id:「+json[1]+"}"+
"]";
類似以上寫成循環即可。
或者版用json-js這樣的庫
ie>8以後和ff>3.5以都權可以用瀏覽器預置對象
JSON.stringify方法直接轉換
㈡ 如何在JS中實現相互轉換XML和JSON
JSON與XML的區別比較
1.定義介紹
(1).XML定義
擴展標記語言 (Extensible Markup Language, XML)
,用於標記電子文件使其具有結構性的標記語言,可以用來標記數據、定義數據類型,是一種允許用戶對自己的標記語言進行定義的源語言。
XML使用DTD(document type definition)文檔類型定義來組織數據;格式統一,跨平台和語言,早已成為業界公認的標准。
XML是標准通用標記語言 (SGML) 的子集,非常適合 Web 傳輸。XML 提供統一的方法來描述和交換獨立於應用程序或供應商的結構化數據。
(2).JSON定義
JSON(javaScript Object
Notation)一種輕量級的數據交換格式,具有良好的可讀和便於快速編寫的特性。可在不同平台之間進行數據交換。JSON採用兼容性很高的、完全獨立於語言文本格式,同時也具備類似於C語言的習慣(包括C,
C++, C#, Java, JavaScript, Perl, Python等)體系的行為。這些特性使JSON成為理想的數據交換語言。
JSON基於JavaScript Programming Language , Standard ECMA-262 3rd Edition - December 1999 的一個子集。
2.XML和JSON優缺點
(1).XML的優缺點
<1>.XML的優點
A.格式統一,符合標准;
B.容易與其他系統進行遠程交互,數據共享比較方便。
<2>.XML的缺點
A.XML文件龐大,文件格式復雜,傳輸占帶寬;
B.伺服器端和客戶端都需要花費大量代碼來解析XML,導致伺服器端和客戶端代碼變得異常復雜且不易維護;
C.客戶端不同瀏覽器之間解析XML的方式不一致,需要重復編寫很多代碼;
D.伺服器端和客戶端解析XML花費較多的資源和時間。
(2).JSON的優缺點
<1>.JSON的優點:
A.數據格式比較簡單,易於讀寫,格式都是壓縮的,佔用帶寬小;
B.易於解析,客戶端JavaScript可以簡單的通過eval()進行JSON數據的讀取;
C.支持多種語言,包括ActionScript, C, C#, ColdFusion, Java, JavaScript, Perl, PHP, Python, Ruby等伺服器端語言,便於伺服器端的解析;
D.在PHP世界,已經有PHP-JSON和JSON-PHP出現了,偏於PHP序列化後的程序直接調用,PHP伺服器端的對象、數組等能直接生成JSON格式,便於客戶端的訪問提取;
E.因為JSON格式能直接為伺服器端代碼使用,大大簡化了伺服器端和客戶端的代碼開發量,且完成任務不變,並且易於維護。
<2>.JSON的缺點
A.沒有XML格式這么推廣的深入人心和喜用廣泛,沒有XML那麼通用性;
B.JSON格式目前在Web Service中推廣還屬於初級階段。
在Javascript中實現XML和JSON相互轉換
先看調用例子:
復制代碼 代碼如下:
<viewport id="menuPane" layout="border">
<panel region="center" border="0" layout="border">
<tbar>
<toolbar text="XXXX">
<menu>
<text text="11">
</text>
<text text="22">
</text>
<text text="33">
</text>
</menu>
</toolbar>
<toolbar text="XXXX">
<menu>
<text text="44">
</text>
<text text="55">
</text>
<menu>
<text text="6 6">
</text>
</menu>
<text text="77">
</text>
</menu>
</toolbar>
</tbar>
</panel>
</viewport>
var xmlParser = new XmlToJson();
var json = xmlParser.parse(xml);
console.log( JSON.stringify(json) );
var jsonParser = new JsonToXml();
var xml = jsonParser.parse(json);
console.log( xml );
XML轉換為JSON:
復制代碼 代碼如下:
function XmlToJson() {
}
XmlToJson.prototype.setXml = function(xml) {
if(xml && typeof xml == "string") {
this.xml = document.createElement("div");
this.xml.innerHTML = xml;
this.xml = this.xml.getElementsByTagName("*")[0];
}
else if(typeof xml == "object"){
this.xml = xml;
}
};
XmlToJson.prototype.getXml = function() {
return this.xml;
};
XmlToJson.prototype.parse = function(xml) {
this.setXml(xml);
return this.convert(this.xml);
};
XmlToJson.prototype.convert = function(xml) {
if (xml.nodeType != 1) {
return null;
}
var obj = {};
obj.xtype = xml.nodeName.toLowerCase();
var nodeValue = (xml.textContent || "").replace(/(\r|\n)/g, "").replace(/^\s+|\s+$/g, "");
if(nodeValue && xml.childNodes.length == 1) {
obj.text = nodeValue;
}
if (xml.attributes.length > 0) {
for (var j = 0; j < xml.attributes.length; j++) {
var attribute = xml.attributes.item(j);
obj[attribute.nodeName] = attribute.nodeValue;
}
}
if (xml.childNodes.length > 0) {
var items = [];
for(var i = 0; i < xml.childNodes.length; i++) {
var node = xml.childNodes.item(i);
var item = this.convert(node);
if(item) {
items.push(item);
}
}
if(items.length > 0) {
obj.items = items;
}
}
return obj;
};
JSON轉換為XML:
復制代碼 代碼如下:
function JsonToXml() {
this.result = [];
}
JsonToXml.prototype.spacialChars = ["&","<",">","\"","'"];
JsonToXml.prototype.validChars = ["&","<",">",""","'"];
JsonToXml.prototype.toString = function(){
return this.result.join("");
};
JsonToXml.prototype.replaceSpecialChar = function(s){
for(var i=0;i<this.spacialChars.length;i++){
s=s.replace(new RegExp(this.spacialChars[i],"g"),this.validChars[i]);
}
return s;
};
JsonToXml.prototype.appendText = function(s){
s = this.replaceSpecialChar(s);
this.result.push(s);
};
JsonToXml.prototype.appendAttr = function(key, value){
this.result.push(" "+ key +"=\""+ value +"\"");
};
JsonToXml.prototype.appendFlagBeginS = function(s){
this.result.push("<"+s);
};
JsonToXml.prototype.appendFlagBeginE = function(){
this.result.push(">");
};
JsonToXml.prototype.appendFlagEnd = function(s){
this.result.push("</"+s+">");
};
JsonToXml.prototype.parse = function(json){
this.convert(json);
return this.toString();
};
JsonToXml.prototype.convert = function(obj) {
var nodeName = obj.xtype || "item";
this.appendFlagBeginS(nodeName);
var arrayMap = {};
for(var key in obj) {
var item = obj[key];
if(key == "xtype") {
continue;
}
if(item.constructor == String) {
this.appendAttr(key, item);
}
if(item.constructor == Array) {
arrayMap[key] = item;
}
}
this.appendFlagBeginE();
for(var key in arrayMap) {
var items = arrayMap[key];
for(var i=0;i<items.length;i++) {
this.convert(items[i]);
}
}
this.appendFlagEnd(nodeName);
};
以上就是為大家整理的在Javascript中實現XML和JSON相互轉換,希望本文所述對大家學習javascript有所幫助。
㈢ JS中如何把JSON格式的字元串轉化為一個對象或數組呢
JSON.parse ('{a:123}');
趁機讓你的用戶別用IE吧。
雖然eval也能用但是不安全。
㈣ 怎樣將javascript轉化為json數據
我舉個例子給你,看看能不能對你有所幫助,若有幫助請採納!
頁面有個動態表格,在保存動態表格時,我們需要將其數據獲取到,並在js中將其轉換為json數據然後在送達給後台Action進行遍歷後保存在相應的數據表中。
而你所問的問題,應該是如何在js中 將數據轉換為json,請看下面代碼:
varsubmitArrBefore=[];
//根據表格ID獲取表格的行數
varbeforeTable=document.getElementById("tabEvectionbefore");
//減去表頭
varbeforelen=(beforeTable.rows.length)-2;
if(beforelen>0){
//遍歷行數據
for(vari=1;i<=beforelen;i++){
varbeforeevectiontime=$("#beforeevectiontime_"+i).val();
varbeforepeersite=$("#beforepeersite_"+i).val();
varbeforevehicle=$("#beforevehicle_"+i).val();
varbeforeplatenumbers=$("#beforeplatenumbers_"+i).val();
varbeforestaymoney=$("#beforestaymoney_"+i).val();
varjsonTmp={};
jsonTmp["evectiontime"]=beforeevectiontime;
jsonTmp["peersite"]=beforepeersite;
jsonTmp["vehicle"]=beforevehicle;
jsonTmp["platenumbers"]=beforeplatenumbers;
jsonTmp["staymoney"]=beforestaymoney;
submitArrBefore.push(jsonTmp);//將數據push到數組中
}
}
//將數組轉換為json數據
varevectionPeerBefore=JSON.stringify(submitArrBefore);
//為了方便傳遞到後台,於是聲明了object容器來裝。
varobject=newObject();
object.evectionPeerBefore=evectionPeerBefore;
㈤ JS解析json數據(如何將json字元串轉化為數
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<SCRIPT LANGUAGE="JavaScript">
var t="{'firstName': 'cyra', 'lastName': 'richardson', 'address': { 'streetAddress': '1 Microsoft way', 'city': 'Redmond', 'state': 'WA', 'postalCode': 98052 },'phoneNumbers': [ '425-777-7777','206-777-7777' ] }";
var jsonobj=eval('('+t+')');
alert(jsonobj.firstName);
alert(jsonobj.lastName);
var t2="[{name:'zhangsan',age:'24'},{name:'lisi',age:'30'},{name:'wangwu',age:'16'},{name:'tianqi',age:'7'}] ";
var myobj=eval(t2);
for(var i=0;i<myobj.length;i++){
alert(myobj[i].name);
alert(myobj[i].age);
}
var t3="[['<a href=# onclick=openLink(14113295100,社旗縣國稅局橋頭稅務所,14113295100,,swjg_dm);>14113295100</a>','社旗縣國稅局橋頭稅務所','社旗縣城郊鄉長江路西段']]";
//通過eval() 函數可以將JSON字元串轉化為對象
var obj = eval(t3);
for(var i=0;i<obj.length;i++){
for(var j=0;j<obj[i].length;j++){
alert(obj[i][j]);
}
}
/*
//stringifier 函數的作用跟 parse 相反, 用來將一個js對象轉換為 JSON 文本。
var jsonText = JSON.stringify(obj);
alert(jsonText);
//如果基於安全的考慮的話,最好是使用一個 JSON 解析器。 一個 JSON 解析器將只接受 JSON 文本。所以是更安全的。
var myObject = JSON.parse(myJSONtext, filter);
//可選的 filter 參數將遍歷每一個value key 值對, 並進行相關的處理。如:
//如
myData = JSON.parse(text, function (key, value) {
return key.indexOf('date') >= 0 ? new Date(value) : value; });
//stringifier 函數的作用跟 parse 相反, 用來將一個js對象轉換為 JSON 文本。
var myJSONText = JSON.stringifier(myObject);
*/
</SCRIPT>
</HEAD>
<BODY>
</BODY>
</HTML>
㈥ js怎樣生成json的數據
1、按照描述,題主是想將多條數據記錄提交到服務端,同時服務端將數據插入到資料庫。那麼思路是將多條數據存在數組中,調用post方法的介面傳入後端。
2、方法如下:
var sendData = [];
sendData.push({name:'david',age:'20'});
sendData.push({name:'peter',age:'23'});
2、jquery中post與get的區別:
1) $.get() 方法使用GET方法來進行非同步請求的。$.post() 方法使用POST方法來 進行非同步請求的。
2)get請求會將參數跟在URL後進行傳遞,而POST請求則是作為HTTP消息的實體 內容發送給Web伺服器的,這種傳遞是對用戶不可見的。
3) get方式傳輸的數據大小不能超過2KB 而POST要大的多。
4)GET 方式請求的數據會被瀏覽器緩存起來,因此有安全問題。
㈦ js怎麼講json轉化為string
轉換方式有兩種:
1、利用原生JSON對象,將對象轉為字元串:
參考代碼如下:
var jsObj = {}; //定義object
jsObj.testArray = [1,2,3,4,5]; //初始化
jsObj.name = 'CSS3';
jsObj.date = '8 May, 2011';
var str = JSON.stringify(jsObj); //轉換成string
alert(str); //彈出提示
2、重寫toString()方法:
參考代碼如下:
Dog.prototype.toString = function dogToString() {
var ret = 'Dog ' + this.name + ' is a ' + this.sex + ' ' + this.color + ' ' + this.breed;
return ret;
}
㈧ JS(JQUERY)把數組數據變成JSON數據
<!DOCTYPEHTML>
<html>
<head>
<metacharset="UTF-8"/>
<title>JS的TAB切換</title>
<styletype="text/css">
</style>
<scripttype="text/javascript">
varoldArr=[
{
"date":"20140929",
"value":"value1"
},
{
"date":"20140929",
"value":"value2"
},
{
"date":"20140929",
"value":"value3"
},
{
"date":"20140930",
"value":"value4"
},
{
"date":"20140930",
"value":"value5"
}
];
varconvert=function(oldArr)
{
varnewJson={};
for(vari=0;i<oldArr.length;i++)
{
(!newJson[oldArr[i].date])
{
newJson[oldArr[i].date]=
{
"date":oldArr[i].date
};
}
if(!!newJson[oldArr[i].date]["data"])
{
newJson[oldArr[i].date]["data"].push(oldArr[i]);
}
else
{
newJson[oldArr[i].date]["data"]=[oldArr[i]];
}
}
returnnewJson;
}
varnewJson=convert(oldArr);
console.log(newJson);
</script>
</head>
<body>
</body>
</html>
㈨ 如何在JS中實現相互轉換XML和JSON
XML轉JSON
functionXmlToJson(){
}
XmlToJson.prototype.setXml=function(xml){
if(xml&&typeofxml=="string"){
this.xml=document.createElement("div");
唯哪this.xml.innerHTML=xml;
this.xml=this.xml.getElementsByTagName("*")[0];
}
elseif(typeofxml=="object"){
this.xml=xml;
}
};
XmlToJson.prototype.getXml=function(){
returnthis.xml;
};
XmlToJson.prototype.parse=function(xml){
this.setXml(xml);
returnthis.convert(this.xml);
};
XmlToJson.prototype.convert=function(xml){
if(xml.nodeType!=1){
returnnull;
}
varobj={};
obj.xtype=xml.nodeName.toLowerCase();
varnodeValue=(xml.textContent||"").replace(/( | )/g,"").replace(/^s+|s+$/g,"");
if(nodeValue&&xml.childNodes.length==1){
obj.text=nodeValue;
}
if(xml.attributes.length>指悄碼0){
for(varj=0;j<xml.attributes.length;j++){
varattribute=xml.attributes.item(j);
obj[attribute.nodeName]=attribute.nodeValue;
}
}
if(xml.childNodes.length>0){
varitems=[];
for(vari=0;i<xml.childNodes.length;i++){
varnode=xml.childNodes.item(i);
varitem=this.convert(node);
if(item){
items.push(item);
}
}
if(items.length>0){
obj.items=items;
}
}
returnobj;
};
//調用示例
varxmlParser=newXmlToJson();
varjson=xmlParser.parse(xml);
JSON轉XML
functionJsonToXml()運世{
this.result=[];
}
JsonToXml.prototype.spacialChars=["&","<",">",""","'"];
JsonToXml.prototype.validChars=["&","<",">",""","'"];
JsonToXml.prototype.toString=function(){
returnthis.result.join("");
};
JsonToXml.prototype.replaceSpecialChar=function(s){
for(vari=0;i<this.spacialChars.length;i++){
s=s.replace(newRegExp(this.spacialChars[i],"g"),this.validChars[i]);
}
returns;
};
JsonToXml.prototype.appendText=function(s){
s=this.replaceSpecialChar(s);
this.result.push(s);
};
JsonToXml.prototype.appendAttr=function(key,value){
this.result.push(""+key+"=""+value+""");
};
JsonToXml.prototype.appendFlagBeginS=function(s){
this.result.push("<"+s);
};
JsonToXml.prototype.appendFlagBeginE=function(){
this.result.push(">");
};
JsonToXml.prototype.appendFlagEnd=function(s){
this.result.push("</"+s+">");
};
JsonToXml.prototype.parse=function(json){
this.convert(json);
returnthis.toString();
};
JsonToXml.prototype.convert=function(obj){
varnodeName=obj.xtype||"item";
this.appendFlagBeginS(nodeName);
vararrayMap={};
for(varkeyinobj){
varitem=obj[key];
if(key=="xtype"){
continue;
}
if(item.constructor==String){
this.appendAttr(key,item);
}
if(item.constructor==Array){
arrayMap[key]=item;
}
}
this.appendFlagBeginE();
for(varkeyinarrayMap){
varitems=arrayMap[key];
for(vari=0;i<items.length;i++){
this.convert(items[i]);
}
}
this.appendFlagEnd(nodeName);
};
//調用示例:
varjsonParser=newJsonToXml();
varxml=jsonParser.parse(json);