asp.net関数からjson配列の戻り値を反復する

私はasp.net関数から返されているいくつかのjsonを持っています。私は今までこれをテストしているに過ぎませんが、現時点で私が持っていることは次のとおりです:

Public Structure myarray
    Dim name As String
End Structure

 _
Public Shared Function temp(ByVal strTerm As String) As String

    Dim user(1) As myarray
    user(0).name = "John"
    user(1).name = "Joe"

    Dim serializer As New JavaScriptSerializer()
    Dim arrayJson As String = serializer.Serialize(user)

    Return arrayJson

End Function

jqueryのために私は持っている:

                jQuery.ajax({
                    type: "POST",
                    url: "default.aspx/temp",
                    data: "{'strTerm':'" + req.term + "'}",
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function (data) {
                        var suggestions = [];
                        $.each(data, function (i, val) {
                            //alert(val);
                            suggestions.push(val);
                        });
                        add(suggestions);
                    },
                    error: function (XMLHttpRequest, textStatus, errorThrown) {
                        alert('unable to create ticket');
                    }
                });

私が何を求めているのか

$.each(data, function (i, val) {
    //alert(val);
    suggestions.push(val);
 });

is to get each of the names I've specified, i.e. John & Joe and add them to the "suggestions" array .Not sure if the Json is in the correct format for this.

返されるjsonは次のとおりです。

[{"name":"John"},{"name":"Joe"}]

どのようなアイデアがこれを行う正しい方法は何ですか?

ありがとう、

0

2 答え

あなたの配列の各項目はjsonオブジェクトです。したがって、名前を提案配列にプッシュする場合は、反復処理されるオブジェクトのnameプロパティをプッシュする必要があります。

$.each(data, function (i, val) {
    //alert(val);
    suggestions.push(val.name);
});

Note: I'd make use of a browser tool like Firebug or Chrome's built in debugger to make sure that the JSON being returned and acted on is what you're expecting. It's been my experience that ASP.NET tends to wrap its JSON response in a 'd' property, so you may need to act on data.d instead of data.

1
追加された
(上記と同じ)...ええ、私は試みましたが、私が(val.name)を警告するならば、私が得るように見えるのは「未定義」です。でる。私はそれがjsonの構造かどうか疑問に思います...
追加された 著者 thegunner,
データを試してみました。基本的に私はこの記事を.netで試しています: net.tutsplus.com/tutorials/javascript-ajax/…
追加された 著者 thegunner,
私はこれを試してみると面白いです:var a = [{"name": "John"}、{"name": "Joe"}] $ .each(a、function(bb){alert(a [bb] .name);});
追加された 著者 thegunner,
あなたはデータの代わりにdata.dを試しましたか?私が言ったように、ASP.NETがdプロパティで応答をラップしている可能性があります。
追加された 著者 villecoder,

名前を追加する場合のみ:

suggestions.push(val.name);//The result would be ['John', 'Joe']

私はASPに精通していませんが、JavaScriptでデータを操作する場合、JSONが最も簡単な方法です。

0
追加された
はい、私は試みましたが、私が(val.name)を警告するならば、私が得るように見えるのは "未定義"です。でる。私はそれがjsonの構造かどうか疑問に思います...
追加された 著者 thegunner,
console.log(data) data の構造を調べ、chromeまたはfirebug JavaScript-consoleを利用してください。
追加された 著者 Tilman Potthof,
実際に返されるJSONを確認してください。 chrome dev-toolにはネットワークセクションがあり、httpリクエストに基づいてレスポンスとヘッダーを表示します。
追加された 著者 Tilman Potthof,
JavaScript - 日本のコミュニティ
JavaScript - 日本のコミュニティ
2 参加者の

日本人コミュニティのjavascript