我正在尝试获取div的属性并尝试将其置于json格式中。 例如,如果我有一个div,其属性是:
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">
答案 0 :(得分:1)
请勿使用alert(variable)
。使用console.log(variable)
并使用调试器。按F12并查看控制台选项卡以查看console.log()
的结果。另外,我会避免命名变量json
,因为有一个名为JSON
的全局对象。
答案 1 :(得分:1)
JSON.stringify(data)
将序列化Object中包含的数据。
查看更新的jsFiddle。
答案 2 :(得分:0)
根据需要构建JS对象,然后将其传递给JSON字符串,如下所示: https://github.com/douglascrockford/JSON-js
不要试图建立自己的字符串,因为你会犯错误,最好使用库或建立的东西。
JSON格式是文本,并且您正在构建对象,您需要使用json格式将该对象序列化为文本。
通常看起来像这样:
JSON.stringify(data)