从json中提取数据

时间:2013-07-11 12:21:18

标签: json wcf

我有一个来自wcf servicein jquery的json数据,如此

GetBedTypeList1Result1是wcf

中的函数
{
    "GetBedTypeList1Result":[
        {"Code":23,"CompanyCode":null,"Decode":"1 Class New Born Bed","DivisionCode":0,"LocationCode":0,"admDueDepAmt":0,"bedTypeCode":0,"caseTypeCode":0,"caseTypeDecode":null,"ptnClassCode":0,"ptnClassDecode":null,"rsvDueDepAmt":0},
        {"Code":22,"CompanyCode":null,"Decode":"1st Class Bed","DivisionCode":0,"LocationCode":0,"admDueDepAmt":0,"bedTypeCode":0,"caseTypeCode":0,"caseTypeDecode":null,"ptnClassCode":0,"ptnClassDecode":null,"rsvDueDepAmt":0},
        {"Code":5,"CompanyCode":null,"Decode":"Classique Bed","DivisionCode":0,"LocationCode":0,"admDueDepAmt":0,"bedTypeCode":0,"caseTypeCode":0,"caseTypeDecode":null,"ptnClassCode":0,"ptnClassDecode":null,"rsvDueDepAmt":0}
    ],
    "strErrMsg":"Y",
    "chrErrFlg":"c"
}

我正在呼叫下面的服务

         function CallWcfService() {
         //alert("CallWcfServicexxxx");
         jQuery.ajax
        (
         {

             type: Type,
             url: Url,
             data: parameters,
             contentType: ContentType, // content type sent to server
             dataType: DataType, //Expected data format from server
             cache: "false",
             crossDomain: true,   //Same result if i remove this line
             processdata: ProcessData, //True or False
             success: function (msg) 
             {
                 ServiceSucceeded(msg);
             },
             error: ServiceFailed// When Service call fails
         }
       );
     }



     function callService() 
     {
         DataType = "json";
         Type = "GET";
         var par = 4;
         parameters = null;
         Url = "http://192.168.2.42/CWSERVERWCF/bedtypemasterService.svc/GetBedTypeList?callback=?";
         parameters = "{'strErrMsg':'1'},{'chrErrFlg':'A'},{'pcompanycode':'0'},{'pdiv':'1'},{'ploc':'1'}";
        // alert(parameters);
         ContentType = "application/json; charset=utf-8";
         ProcessData = true;
         //alert("sssssasasadsds");
         CallWcfService();
     }

我正在尝试获取数据,但没有得到lke

   function ServiceSucceeded(result)
      {

        if (DataType == "json")
        {
           var obj =  jQuery.parseJSON(JSON.stringify(JSON.stringify(result)));
           for (var x = 0; x < obj.length; x++) 
            {

            }
         }
     }

在obj.length字符数量即将到来且jQuery.parseJSON(结果)无法正常工作

请帮忙

2 个答案:

答案 0 :(得分:0)

尝试使用JSON.parse(result)代替:var obj = jQuery.parseJSON(JSON.stringify(JSON.stringify(result)));

此外,由于您在$ .ajax调用中提到dataType为'json',因此您的响应应该是JSON格式,不需要解析。

答案 1 :(得分:0)

如果结果是json,则无需以这种方式解析它。如果数据类型设置为json,jQuery.ajax将返回一个javascript对象。

因此,在ServiceSucceeded函数中,您可以直接对结果变量进行操作。如果您试图迭代床类型,请将您的for循环更改为以下内容:

for (var i = 0; i < result.GetBedTypeList1Result.length; i++) {
  // ...do stuff
  // var bed = result.GetBedTypeList1Result[i]]
}