1

出于某种原因,我简单的 .getJSON 方法正在向我的 json 添加一些我没有得到的额外内容。我想我已经做了一个非常简单的实现。下面是 JSON 和我的 JavaScript。

这都是 k__BackingField。谁在帮我解决这个问题?

 [{"<CodeCampYearId>k__BackingField":7,"<Attendeesid>k__BackingField":1124,"<SessionLevel_id>k__BackingField":2,"<SponsorId>k__Ba    



$(document).ready(function () {
        // Send an AJAX request
        $.getJSON("api/session/GetAll",
        function (data) {
            // On success, 'data' contains a list of products.
            $.each(data, function (key, val) {

                //debugger;

                // Format the text to display.
                //var str = val.Name + ': $' + val.Price;
                var str = 'abcd';

                // Add a list item for the product.
                $('<li/>', { text: str })
                .appendTo($('#products'));
            });
        });
    });
4

2 回答 2

8

您的课程可能[Serializable]会导致字段被序列化。您可以:

  • 移除[Serializable]属性
  • 或者要求JSON格式化程序忽略[Serializable]这一行的语义:

    (DefaultContractResolver)config.Formatters.JsonFormatter.
    SerializerSettings.ContractResolver).IgnoreSerializableAttribute = true;
    
于 2012-12-29T09:10:26.123 回答
3

就我而言,事实证明我需要添加[DataContract]到类和每个属性[DataMember]中。

优素福上面的评论提醒我这是一个序列化问题,所以谢谢。然而,该建议无法解决。

我正在使用的项目可能有一个较旧的项目NewtonSoft serializer,这可能会导致问题。我现在仍然拥有我的[serializable]属性,只要我在每个属性上包含[DataContract]and ,它就可以正常工作。[DataMember]

于 2012-12-29T16:24:18.300 回答