将一些数据转换为json格式,但不确定它是否有效

Convert some data into json format but not sure if its working

本文关键字:不确定 有效 是否 格式 json 数据 转换      更新时间:2023-09-26

我正在尝试获取div的属性并尝试将其放入json格式。例如,如果我有一个div,它的属性是:

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

所以我试图用 json 格式把它放在这种格式中:

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

这是我到目前为止编写的代码,但我不确定我是否做得对,因为它返回 [object Object]。如何检查我正在做的事情是否正确并查看上述形式的 json 数组?

JSfiddle link: 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">

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

请参阅更新的 jsFiddle。

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

根据需要构建JS对象,然后将其传递给JSON字符串化器,如下所示:https://github.com/douglascrockford/JSON-js

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

JSON 格式为文本,

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

通常它看起来像这样:

JSON.stringify(data)