C# 来自WebMethod的JSON数据

C# 来自WebMethod的JSON数据,c#,json,webmethod,C#,Json,Webmethod,我有以下从Webmethod返回的JSON字符串 [{"__type":"DEV.GlobalClasses+Class","AKA":["Peter Pan","Donald Duck"],"Countries":["US","UK"],"Gender":"Male","PercentageMatch":94},{"__type":"DEV.GlobalClasses+Class,"AKA":["Andrew"],"Countries":["FR"],"Gender":null,"Percen

我有以下从Webmethod返回的JSON字符串

[{"__type":"DEV.GlobalClasses+Class","AKA":["Peter Pan","Donald Duck"],"Countries":["US","UK"],"Gender":"Male","PercentageMatch":94},{"__type":"DEV.GlobalClasses+Class,"AKA":["Andrew"],"Countries":["FR"],"Gender":null,"PercentageMatch":72}]
我想在以下网页中介绍:

 AKA
 Peter Pan
 Donald Duck

 Countries
 US, UK

 Gender
 Male

 Percentage
 79
与我在asp ListView中显示的数据集相同

到目前为止,我已经想到了这一点,但我正在努力获得AKA国家的价值观

            $.ajax({
                type: "POST",
                url: "Default.aspx/PopulatePopUp",
                cache: false,
                data: JSON.stringify({ messageId: messageId, messageType: messageType }),
               // data: '{ messageId:' + messageId + ', messageType:' + messageType + ' }',
                contentType: "application/json; charset=utf-8",

            dataType: "json",

            success: function (msg) {

                var classes= msg.d;


                $.each(classes, function (index, class) {

               var table =          $("<table><thead><tr><th>AKA</th><th>Countries</th><th>Gender</th><th>Percentage</th></thead><tbody>");
                    var tr = "<tr>";


                    tr += "<td>" + joinWithBr(class["AKA"].string) + "</td>";
                    tr += "<td>" + joinWithBr(class["Countries"].string) + "</td>";
                    tr += "<td>" + class["Gender"] + "</td>";
                    tr += "<td>" + class["PercentageMatch"] + "</td>";

                    tr += "</tr>";
                    table.append(tr);
                });
                table += '</tbody></table>';
                $('div#results').html(table);

            }



            });

            function joinWithBr(arrayObj) {
                var str = "";
                for (var i = 0; i < arrayObj.length; i++) {
                    str += arrayObj[i] + "<br/>";
                }

                return str;
            }
$.ajax({
类型:“POST”,
url:“Default.aspx/populatepoup”,
cache:false,
data:JSON.stringify({messageId:messageId,messageType:messageType}),
//数据:{messageId:'+messageId+',messageType:'+messageType+'}',
contentType:“应用程序/json;字符集=utf-8”,
数据类型:“json”,
成功:功能(msg){
变量类=msg.d;
$.each(类、函数(索引、类){
var表=$(“AKACountriesGenderPercentage”);
var tr=“”;
tr+=“”+joinWithBr(class[“AKA”].string)+“”;
tr+=“”+joinWithBr(class[“Countries”].string)+“”;
tr+=“”+类[“性别”]+“”;
tr+=“”+class[“PercentageMatch”]+“”;
tr+=”;
表3.追加(tr);
});
表+='';
$('div#results').html(表格);
}
});
函数joinWithBr(arrayObj){
var str=“”;
对于(变量i=0;i”;
}
返回str;
}
*编辑*

好的,一定是周末热,但我今天早上发现了一些其他错误。她将Jquery脚本修改如下:

      success: function (msg) {

                    var entities = msg.d;
                    var table = $("<table><thead><tr><th>AKA</th><th>Countries</th><th>Gender</th><th>Percentage</th></thead><tbody></tbody></table>");
                    $.each(entities, function (index, entity) {

                        var tr = "<tr>";

                        $.each(entity["AKA"], function (index, ele) {
                            tr += "<td>" + ele + "<br/>" + "</td>";
                        });
                        $.each(entity["Countries"], function (index, ele) {
                            tr += "<td>" + ele + "<br/>" + "</td>";
                        });
                        tr += "<td>" + entity["Gender"] + "</td>";
                        tr += "<td>" + entity["Percentage"] + "</td>";
                        tr += "</tr>";
                        table.append(tr);
                    });
                    $('div#results').html(table);
success:函数(msg){
var实体=msg.d;
var表=$(“AKACountriesGenderPercentage”);
$.each(实体、功能(索引、实体){
var tr=“”;
$.each(实体[“AKA”],函数(索引,ele){
tr+=“+ele+”
“+”; }); 美元。每个(实体[“国家]),职能(索引,ele){ tr+=“+ele+”
“+”; }); tr+=“”+实体[“性别”]+“”; tr+=“”+实体[“百分比”]+“”; tr+=”; 表3.追加(tr); }); $('div#results').html(表格);
因此,这现在可以根据需要生成输出,但布局不是我想要的,不是UI开发人员

*编辑*

编辑 现在布局已排序,但由于某种原因,当只有3个数据集时,我得到了6个条目:

使用
$。阵列上的每个

$.each(class["AKA"], function(index,ele){
    tr += joinWithBr(ele);
});
“国家”也是如此

代码的相关部分最终看起来像:

                    var tr = "<tr><td>";
                    $.each(entity["AKA"], function (index, ele) {
                        tr += ele + "<br>";
                    });
                    tr+= "</td><td>"
                    $.each(entity["Countries"], function (index, ele) {
                        tr += ele + "<br>";
                    });
                    tr+= "</td>";
                    //Continue adding gender, percentage, etc.
var tr=”“;
$.each(实体[“AKA”],函数(索引,ele){
tr+=ele+“
”; }); tr+=“” 美元。每个(实体[“国家]),职能(索引,ele){ tr+=ele+“
”; }); tr+=”; //继续添加性别、百分比等。
我在办公室的时候会尝试。谢谢AquaragaQuarage的帮助,我只需要一些格式化方面的帮助。如果您能提供帮助,请参阅上面的编辑please@CSharpNewBee我已经按答案编辑了。你能检查一下这是否适合你吗?嗯,我不这么认为。但你必须在最后关闭“table”标记,即tr+=“”。您现在可以尝试呈现页面了吗。这是生成的输出:Name 1
Name 2
UK
US
FR
ES
class
是JavaScript中的保留关键字。请先用其他内容更改它。谢谢Satpal,这仅用于本论坛的说明目的。