将一些数据转换为json格式,但不确定它是否正常工作

时间:2012-05-15 13:40:56

标签: javascript json format

我正在尝试获取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">

3 个答案:

答案 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)