0

次のJSON Bodyを送信しようとしていました

{
    "ID": "3d7effda-8e3a-4254-bc4a-32c473ce473f",
    "Projects": [
        {
            "__type": "ProductEvaluationReference:#abc.Think.Projects",
            "ID": "01ff01cb-d3a5-4a36-b274-446cdcbd93a2",
            "Type": "ProductEvaluation"
        },
        {
            "__type": "FinancialAssessmentReference:#abc.Think.Projects",
            "ID": "403030bf-dc7d-4e4f-ae5b-b25c6b61e986",
            "Type": "FinancialAssessment"
        },
        {
            "__type": "ProductSurveyReference:#abc.Think.Projects",
            "ID": "8e43e41f-d200-4508-9c48-f0ee6e8baf99",
            "Type": "ProductSurvey"
        },
        {
            "__type": "ProductSurveyReference:#abc.Think.Projects",
            "ID": "e066c8ae-e268-4e9d-b2b0-ecb888d9a238",
            "Type": "ProductSurvey"
        }
    ]
}
}

これは完全に機能します。しかし__type、リクエストのフィールドの順序を変更すると、辞書の最初のキーではなく、2 番目のキーになります。エラーが発生しますCannot create abstract class。例えば:

{
    "ID": "403030bf-dc7d-4e4f-ae5b-  b25c6b61e986",
    "_type": "FinancialAssessmentReference:#abc.Think.Projects",
    "Type": "FinancialAssessment"
}

私はMSDNで以下を読みました

JSON オブジェクト内の型ヒントの位置
型ヒントは、JSON 表現の最初に表示される必要があることに注意してください。これは、JSON 処理でキーと値のペアの順序が重要になる唯一のケースです。

これは本当に必要なのですORDERED JSONか、それともサーバー側で何か問題がありますか? ありがとう

4

1 に答える 1

1

はい、順序付けされた JSON が必要だったことは事実です。キーにいくつかの順序付けを追加する NSDictionary のサブクラスを作成しました。

于 2013-12-22T18:42:17.593 に答える