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 に答える