1

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

4

3 回答 3

1

不要使用alert(variable). 请改用console.log(variable)调试器。点击 F12 并查看控制台选项卡以查看console.log(). 另外,我会避免命名变量json,因为有一个名为JSON.

于 2012-05-15T13:43:31.223 回答
1

JSON.stringify(data)将序列化对象中包含的数据。

请参阅更新的 jsFiddle

于 2012-05-15T13:47:51.983 回答
0

随心所欲地构建 JS 对象,然后将其传递给 JSON stringtifier,如下所示: https ://github.com/douglascrockford/JSON-js

不要试图为自己构建一个 stringfier,因为你会犯错误,最好使用库或构建的东西。

JSON 格式是文本,并且您正在构建一个对象,您需要使用 json 格式将该对象序列化为文本。

通常它看起来像这样:

JSON.stringify(data)

于 2012-05-15T13:48:22.937 回答