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]

上記のYoussefのコメントは、シリアル化の問題であることを思い出させてくれたので、ありがとうございます。ただし、提案は解決されません。

これを使用しているプロジェクトは古いNewtonSoft serializer可能性がありますが、問題が発生している可能性があります。私は今でも自分の属性を持っており、各プロパティにと[serializable]を含める限り、それで期待どおりに機能します。[DataContract][DataMember]

于 2012-12-29T16:24:18.300 に答える