1

salesforce REST にクエリを実行するAPI (/services/data/v29.0/query?q=select+id,Name,AccountNumber,OwnerId,Site,Description,NumberOfEmployees,Fax,Industry,Phone,Website,Type+from+Account+where+id='0019000000NMrbv') と、以下の応答が返されます。

{
    "attributes" : {
      "type" : "Account",
      "url" : "/services/data/v29.0/sobjects/Account/0019000000NMrbvAAD"
    },
    "Id" : "0019000000NMrbvAAD",
    "Name" : "Test G",
    "AccountNumber" : null,
    "OwnerId" : "00590000001BpGnAAK",
    "Site" : null,
    "Description" : null,
    "NumberOfEmployees" : null,
    "Fax" : null,
    "Industry" : null,
    "Phone" : null,
    "Website" : null,
    "Type" : null
}

上記と同じクエリを使用して、以下のような Apex REST サービスを作成しました

@HttpGet
 global static Account doGet(){
    Account acc = [select id,Name,AccountNumber,OwnerId,Site,Description,NumberOfEmployees,Fax,Industry,Phone,Website,Type from Account where id ='0019000000NMrbvAAD'];
    return acc;
}

そして、このサービスを呼び出したときに得られる応答は

{
   "attributes":    {
      "type": "Account",
      "url": "/services/data/v29.0/sobjects/Account/0019000000NMrbvAAD"
   },
   "Name": "Test G",
   "OwnerId": "00590000001BpGnAAK",
   "Id": "0019000000NMrbvAAD"
}

上記の 2 つの応答を比較してください。apex レスト サービスからの応答には、null 値を持つフィールドがありません。

salesforce ios ネイティブ アプリを作成しました。このサービスは標準の REST API を使用していますが、パフォーマンスの問題から APEX レスト サービスを作成する予定ですが、この応答の違いにより、これを処理するために多くの場所でコードを変更する必要があります。

このような問題に直面した人はいますか?これを処理する方法を提案すると役に立ちますか? apex REST サービスが標準の salesforce REST API と同じ応答を返すようにすることはできますか?

4

1 に答える 1

0

Salesforce のシリアル化でも同様の動作が確認されています。多くの場合、null オブジェクトは単純に含まれません。

API が独自のシリアライザーを使用している可能性があります。

とにかく、あなたは一人ではありません。

https://salesforce.stackexchange.com/questions/13820/json-serialize-method-not-returning-null-fields-part-deux

于 2013-11-06T04:34:55.603 に答える