如何通过从服务器端返回的jquery和json来解析json



>我只是通过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 字符串中出现一次,但 JSON 字符串中可能有很多Item_Name、amount_、quantity_、shipping_ 等字段。 所以我必须循环读取那些我无法做到的准备字段。 因此,请帮助我使用jQuery的小代码片段进行解析,通过这些代码片段,我可以读取那些将在JSON中出现一次的字段以及我需要阅读那些在 JSON 字符串中出现的时间和时间一样多的字段。谢谢

  // JavaScript
  function test(data){
     var result = jQuery.parseJSON(data);                                                
     // you can access them like 
     result.first_name ;
     result.last_name ;
  }

您可以使用 jQuery parseJSON http://api.jquery.com/jQuery.parseJSON/方法将 json 字符串解析为 object。

你可以通过使用jQuery.each循环浏览,http://api.jquery.com/jQuery.each/这可以用来迭代对象。

如果您收到 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},{},...,{}]

最新更新