1

私はC#にarrayListを持っており、ipとispのデータを保存し、mysqlテーブルから次のようにカウントします。

ArrayList conRc = new ArrayList();

while (readIp.Read())
{
    string ipVal = readIp.GetString(0);
    string ispVal = readIp.GetString(1);
    int conLvlVal = readIp.GetInt32(2);

    conRc.Add(new ConfidenceLvl(ipVal,ispVal,conLvlVal));
}

これは私のConfidenceLvlクラスです。

public class ConfidenceLvl
{
    private string ip;
    private string isp;
    private int conLvl;

    public string Ip
    {
        get { return ip; }
        set { ip = value; }
    }
    public string Isp
    {
        get { return isp; }
        set { isp = value; }
    }
    public int ConLvl
    {
        get { return conLvl; }
        set { conLvl = value; }
    }

    public ConfidenceLvl(string ipVal, string ispVal, int conLvlVal) {
        this.conLvl = conLvlVal;
        this.ip = ipVal;
        this.isp = ispVal;
    }
}

これをjavascriptに渡して、これらの値を使用してjqPlotを介してグラフを作成できるようにします。このメソッドを使用して値をjavascriptに渡しましたが、すべて1つの文字列として処理されます。これらの値を個別に取得して、JavaScriptで操作したいと思います。私を助けてください。どうもありがとうございます。

編集:Dominik Kirschenhoferのおかげで、JavaScriptの解析に成功した後、ようやくこれで終わりました。これらのデータを操作する方法を教えてもらえますか?レコードを1つずつ取得するのが好きですか?私はしようとしましたが、どれもうまくいきませんでした、

    <asp:HiddenField ID="correlate" value= "" runat="server" />
    <script language="javascript" type="text/javascript">
        var jsonString = document.getElementById('correlate').value;
        var arr_from_json = JSON.parse(jsonString);

    </script>

json文字列は次のとおりです。

    [{"Ip":"0","Count":"10"},{"Ip":"1","Count":"11"},{"Ip":"2","Count":"12"},{"Ip":"3","Count":"13"},{"Ip":"4","Count":"14"},{"Ip":"5","Count":"15"},{"Ip":"6","Count":"16"},{"Ip":"7","Count":"17"},{"Ip":"8","Count":"18"},{"Ip":"9","Count":"19"}] 

これらのレコードをどのように処理できるか知っていますか:)

編集:それを解決しました

    <asp:HiddenField ID="correlate" value= "" runat="server" />
    <script language="javascript" type="text/javascript">
        var jsonString = document.getElementById('correlate').value;
        jsonString = "{\"corrData\":" + jsonString + "}";
        var arr_from_json = JSON.parse(jsonString);
        alert(Number(arr_from_json.corrData[2].Ip)+1);
    </script>

corrDataを追加して、配列内の整数IDで呼び出すことができるようにしました。:)あなたの助けてくれてありがとう:)もっと良い方法があれば..私に知らせてください:)

4

2 に答える 2

2

ASP.net MVC を使用している場合は、次のことができます。ArrayList の代わりにジェネリック リストを使用するようにコードを書き直しました。ArrayList は厳密に型指定されておらず、ジェネリックが .net 2.0 に付属しているため、一般的に減価償却されていると見なされます。

次のコードは POST リクエストでのみ機能することに注意してください。JsonRequestBehavior.AllowGet

public class ConfidenceLvl
    {
        public string IpVal { get; set; }
        public string IspVal { get; set; }
        public string ConLvlVal { get; set; }
    }

    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            IList<ConfidenceLvl> levels = new List<ConfidenceLvl>();
            levels.Add(new ConfidenceLvl { IpVal = "129.123.123.123", ConLvlVal = "1", IspVal = "AOL" });
            levels.Add(new ConfidenceLvl { IpVal = "129.123.0.0", ConLvlVal = "3", IspVal = "CompuServe" });

            // Controlled json
            return Json(levels.Select(lv => new { title = lv.IspVal, ip = lv.IpVal }));

            // As it comes json
            //return Json(levels);
        }
    }
}
于 2012-08-29T10:30:39.760 に答える
2

jsで使用したいコードビハインドにリストまたは固定値の配列がある場合、投稿したリンクで説明されているように、より簡単な方法があります。リストをシリアル化し、隠しフィールドに保存することを意味します。jsで使用する必要がある場合は、逆シリアル化して使用してください。

シリアル化を参照してください: http://blogs.microsoft.co.il/blogs/pini_dayan/archive/2009/03/12/convert-objects-to-json-in-c-using-javascriptserializer.aspx

逆シリアル化: json から javascript オブジェクトに逆シリアル化します

1) 一般的なリストを使用します。2) 必要に応じてリストを埋めます。3) リストを配列に変換 => linq を使用すると非常に簡単: myList.ToArray() 4) 配列を json 文字列にシリアル化します。最初のリンクを参照してください。5) ページに隠しフィールドを配置し、その値として json 文字列を設定します (分離コード) 6) js でこの配列を使用する必要があるときはいつでも、隠しフィールドの値を逆シリアル化して使用します。2番目のリンクを参照してください。

于 2012-08-29T10:10:48.290 に答える