0

jqueryでサーバー側のメソッドを呼び出しているだけで、サーバー側のメソッドは次のようになります。

[WebMethod]
public static Dictionary<string,string> GetPayPalData()
{
    Dictionary<string, string> rmPayPal = new Dictionary<string, string>();

    int counter = 0;
    Invoice _selectedInvoice = SelectedInvoice;
    rmPayPal.Add("first_name", "Tridip");
    rmPayPal.Add("last_name", "BBA");


    foreach (InvoiceItem x in _selectedInvoice.InvoiceItems)
    {
        counter++;
        rmPayPal.Add("item_name_" + counter.ToString(), x.ProductName);
        rmPayPal.Add("amount_" + counter.ToString(), x.UnitPrice.ToString("#.00"));
        rmPayPal.Add("quantity_" + counter.ToString(), x.Quantity.ToString());
        rmPayPal.Add("shipping_" + counter.ToString(), (x.ShippingCost * x.Quantity).ToString("#.00"));
        rmPayPal.Add("handling_" + counter.ToString(), (x.HandlingCost * x.Quantity).ToString("#.00"));
    }

     rmPayPal.Add("country", "GB");
     rmPayPal.Add("currency_code", "GBP");
     return rmPayPal;

}

私のサンプルjsonは次のようになります

{"d":
{"first_name":"Tridip",
"last_name":"BBA",
"address1":"Unit 1 Stirling Park",
"address_override":"1",
"city":"Rochester",
"state":"KENT",
"zip":"ME1 3QR",
"cmd":"_cart",
"upload":"1",

"item_name_1":
"Product #1",
"amount_1":"13.00",
"quantity_1":"4",
"shipping_1":"12.00",
"handling_1":"2.00",

"item_name_2":
"Product #3",
"amount_2":"11.00",
"quantity_2":"1",
"shipping_2":"3.00",
"handling_2":".50",

"country":"GB",
"currency_code":"GBP"
}
 }

サーバー側の関数はjqueryによって完全に呼び出され、json形式のデータはクライアント側に正常に返されます。私の懸念は、jqueryによって上記のjsonを解析する方法です。

名、姓、およびいくつかのフィールドがjson文字列に一度だけ存在するためですが、Item_Name、amount_、quantity_、shipping_などのフィールドはjson文字列に多数存在する可能性があります。だから私はループでそれらの準備フィールドを読む必要がありますが、それは私にはできません。だから私は解析のためのjqueryの小さなコードスニペットを手伝ってください。それによって私はjsonに一度来るそれらのフィールドを読むことができますそして私はjson文字列に何度も来るそれらのフィールドを読む必要があります。ありがとう

4

3 に答える 3

1
  // JavaScript
  function test(data){
     var result = jQuery.parseJSON(data);                                                
     // you can access them like 
     result.first_name ;
     result.last_name ;
  }
于 2012-06-04T08:23:30.770 に答える
0

var result = jQuery.parseJSON(data);でエラーが発生した場合。データが正しくフォーマットされていない可能性があります。まず、次のようなものを解析できるかどうかを確認してください。

var JSONstring= "[{\"Type\":2,\"Number\":\"000 000 000\",\"TypeName\":\"mobile\",\"Extension\":\"\",\"ID\":\"a2fc8a78-71a8-4550-9a9f-1c1ad4cab1d9\",\"IsNew\":false,\"IsEdited\":false}]";
var JSONobj = jQuery.parseJSON(JSONstring);
/*the you can iterate through json object's member with a for loop*/
var counter = 0;
for (counter = 0; counter < JSONobj.length; counter++)
   if (number == JSONobj[counter].Number)
      DoSomething(JSONobj[counter].Number);

オブジェクトの別の配列を文字列に追加する場合、正しい形式は次のようになります。

var JSONstring = [{"Name1":value1,"Name2":value2,...,"Namei":valuei},{},...,{}]
于 2012-06-04T09:20:09.977 に答える
0

jQuery parseJSON http://api.jquery.com/jQuery.parseJSON/メソッドを使用して、json 文字列を解析してオブジェクトにすることができます。

また、jQuery .each http://api.jquery.com/jQuery.each/を使用してループすることもできます。これを使用して、オブジェクトを反復処理できます。

于 2012-06-04T08:24:12.607 に答える