2012-05-15 49 views
1

我想要獲取div的屬性並嘗試將其放入json格式。 例如,如果我有一個div和它的屬性是:將一些數據轉換成json格式,但不知道它的工作

api="something" data-page="5" data-tag="blah" 

所以我試圖把它放在這個格式JSON:

{"api":"getArticles","parameters":{"param1":"value 1","param2":value2... }} 

這是我到目前爲止已經編寫的代碼,但我不確定是否正確,因爲它返回[object Object]。我如何檢查我所做的是否正確,並看到上述形式的json數組?

的jsfiddle鏈接:http://jsfiddle.net/ithril/mCNbW/4/

var arr = $("div").get(0).attributes, attributes = []; 
 
var l; 
 
var attrinames; 
 
var attrivalues; 
 
var api; 
 
for(var i = 0; i < arr.length; i++) { 
 
    if(arr[i].name.indexOf("data-")==0){ 
 
     l=arr[i].name.lastIndexOf("data-",0)+"data-".length; 
 
     attrinames=arr[i].name.substr(l); 
 
if(attrinames!="apicall"){ 
 
    attrivalues=arr[i].value; 
 
    attributes.push({attrinames:attrivalues}); 
 
} 
 
else 
 
    api=attrivalues; 
 
} 
 
} 
 
var json=[] 
 
    json.push({"api":api,"parameters":attributes}); 
 
alert(json);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
 
<div class="divload" data-apicall="anything.php" link="" data-page="5" data-tag="stuff">

回答

1

JSON.stringify(data)將序列化對象中包含的數據。

查看更新jsFiddle

1

不要使用alert(variable)。使用console.log(variable)並改用調試器。按F12並查看控制檯選項卡查看console.log()的結果。此外,我會避免命名變量json,因爲有一個名爲JSON的全局對象。

0

建立任何你想要的JS對象,然後把它傳遞給一個JSON stringtifier,像這樣的: https://github.com/douglascrockford/JSON-js

不要試圖建立自己stringfier,因爲你會犯錯誤,最好用圖書館或一些建設。

JSON格式是文本,並且您正在構建一個對象,您需要使用json格式將該對象序列化爲文本。

通常它看起來就像是:

JSON.stringify(data)