Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 使用jquery解析对C#对象的json响应_Asp.net_Wcf_Web Services_Jquery - Fatal编程技术网

Asp.net 使用jquery解析对C#对象的json响应

Asp.net 使用jquery解析对C#对象的json响应,asp.net,wcf,web-services,jquery,Asp.net,Wcf,Web Services,Jquery,我的WCF服务返回了以下JSON: `{"DoWorkResult":[{"AAID":0,"AreaID":1,"AreaName":"Basement","AssemblyAssessmentID":1,"AssemblyID":493,"AssemblyName":"Handrail (Steel)","AssessmentID":1,"AssessmentName":"University Of WA","AttributesCount":1,"CapitalReplacementUni

我的WCF服务返回了以下JSON:

`{"DoWorkResult":[{"AAID":0,"AreaID":1,"AreaName":"Basement","AssemblyAssessmentID":1,"AssemblyID":493,"AssemblyName":"Handrail (Steel)","AssessmentID":1,"AssessmentName":"University Of WA","AttributesCount":1,"CapitalReplacementUnitCost":623,"CategoryID":7,"CategoryName":"Furniture and Fixtures","CountedUnits":7,"CreatedBy":"Admin","ElementID":37,"ElementName":"Handrails and Balustrades","FacilityID":1,"FacilityName":"Central Chilled Water Plant","FacilityPercentage":"0","IsCompleted":1,"IsHeritage":false,"IsSafetyRisk":false,"Level1Units":0,"Level2Units":0,"Level3Units":0,"Level4Units":0,"Level5Units":7,"MesurementUnit":"Items","PhotosCount":1,"RepairCost":0,"RepairNotes":"","RequiresSpecialist":false,"SiteName":"CRAWLEY","SpaceID":1,"SpaceName":"B01","TasksCount":0}]}
我的服务方式是这样的

[System.ServiceModel.OperationContract]   
    [WebInvoke(Method = "POST",
              BodyStyle = WebMessageBodyStyle.Wrapped,
              ResponseFormat = WebMessageFormat.Json,
              RequestFormat = WebMessageFormat.Json)]
    public List<BLL.BLL_AssemblyAssessment> DoWork(string id)   {


       return BLL.BLL_AssemblyAssessment.GetAssessemblyAssessmentByAssemblyAssessmentID(1, 1);

    }
使用


在javascript代码中,使用
数据类型:“json”
选项调用
$.ajax
函数,jQuery就可以完成解析

success
回调中的
data
变量已经是javascript对象

您可以访问其属性:

success: function(data) {
    var html = "",
        rows = data.DoWorkResult,
        lgth = rows.length,
        i, row;
    for ( i=0; i<lgth; i++ ){
        row = rows[i];
        html += "<tr><td>"+row.AAID+"</td><td>"+row.AreaName+"</td></tr>";
        // or whatever
    }

    $("#myTable").html( html );
}

我真的看不出有什么问题

由于已将JSON指定为数据类型,因此JSON将解析为成功处理程序中的javascript对象。只需使用$对其进行迭代即可。每个:

//data.DoWorkResult is an array with one element

$.each(data.DoWorkResult, function(k, v){
    alert(v.AAID); //will alert 0 one time since there is only one object in the
    //array and the value is 0 on the AAID property
});


注意,在我的示例中,我需要解析JSON,因为它不是由任何ajax方法自动完成的。

它给出错误:SyntaxError:JSON.parse:unexpected character[Break On This error]警报(JSON.parse(data));我不明白你需要什么?乍一看,
成功
回调中的
数据
变量应该已经是一个对象(您的
警报(数据)
是否显示
[object object]
?)。您的确切需求是什么?我想获取数据,它应该是BLL.BLL_AssemblyAssemblyAssessment类型的行集合(这不是datacontract,而是一个简单的类),然后我将迭代这些行并显示在中html@LeGEC我得到[对象]的警告。
success: function(data) {
    var html = "",
        rows = data.DoWorkResult,
        lgth = rows.length,
        i, row;
    for ( i=0; i<lgth; i++ ){
        row = rows[i];
        html += "<tr><td>"+row.AAID+"</td><td>"+row.AreaName+"</td></tr>";
        // or whatever
    }

    $("#myTable").html( html );
}
success: function(data) {
    console.log(data);
    console.log(data.DoWorkResult);
    console.log(data.DoWorkResult[0]);
}
//data.DoWorkResult is an array with one element

$.each(data.DoWorkResult, function(k, v){
    alert(v.AAID); //will alert 0 one time since there is only one object in the
    //array and the value is 0 on the AAID property
});