2015-09-24 1 views
5

Ich habe zwei Wolkenjunge Datenobjekte bekam, die etwas wie folgt aussehen:Wie kann ich CloudKit-Webdienste verwenden, um Abfragen basierend auf einem Referenzfeld durchzuführen?

Geordnetes Objekt:

{ 
    "records": [ 
     { 
      "recordName": "14102C0A-60F2-4457-AC1C-601BC628BF47-184-000000012D225C57", 
      "recordType": "ParentObject", 
      "fields": { 
       "fsYear": { 
        "value": "2015", 
        "type": "STRING" 
       }, 
       "displayOrder": { 
        "value": 2015221153856287200, 
        "type": "INT64" 
       }, 
       "fjpFSGuidForReference": { 
        "value": "14102C0A-60F2-4457-AC1C-601BC628BF47-184-000000012D225C57", 
        "type": "STRING" 
       }, 
       "fsDateSearch": { 
        "value": "2015221153856287158", 
        "type": "STRING" 
       }, 
      }, 
      "recordChangeTag": "id4w7ivn", 
      "created": { 
       "timestamp": 1439149087571, 
       "userRecordName": "_0d26968032e31bbc72c213037b6cb35d", 
       "deviceID": "A19CD995FDA3093781096AF5D818033A241D65C1BFC3D32EC6C5D6B3B4A9AA6B" 
      }, 
      "modified": { 
       "timestamp": 1439149087571, 
       "userRecordName": "_0d26968032e31bbc72c213037b6cb35d", 
       "deviceID": "A19CD995FDA3093781096AF5D818033A241D65C1BFC3D32EC6C5D6B3B4A9AA6B" 
      } 
     } 
    ], 
    "total": 
} 

Kind Objekt:

{ 
    "records": [ 
     { 
      "recordName": "2015221153856287168", 
      "recordType": "ChildObject", 
      "fields": { 
       "District": { 
        "value": "002", 
        "type": "STRING" 
       }, 
       "ZipCode": { 
        "value": "12345", 
        "type": "STRING" 
       }, 
       "InspecReference": { 
        "value": { 
         "recordName": "14102C0A-60F2-4457-AC1C-601BC628BF47-184-000000012D225C57", 
         "action": "NONE", 
         "zoneID": { 
          "zoneName": "_defaultZone" 
         } 
        }, 
        "type": "REFERENCE" 
       }, 
      }, 
      "recordChangeTag": "id4w7lew", 
      "created": { 
       "timestamp": 1439149090856, 
       "userRecordName": "_0d26968032e31bbc72c213037b6cb35d", 
       "deviceID": "A19CD995FDA3093781096AF5D818033A241D65C1BFC3D32EC6C5D6B3B4A9AA6B" 
      }, 
      "modified": { 
       "timestamp": 1439149090856, 
       "userRecordName": "_0d26968032e31bbc72c213037b6cb35d", 
       "deviceID": "A19CD995FDA3093781096AF5D818033A241D65C1BFC3D32EC6C5D6B3B4A9AA6B" 
      } 
     } 
    ], 
    "total": 1 
} 

Ich versuche, eine Abfrage direkt zu schreiben greifen Sie auf den CloudKit-Webdienst zu und geben Sie das Child-Objekt basierend auf der Referenz des übergeordneten Objekts zurück.

Mein Test JSON sieht ungefähr so ​​aus:

{"query":{"recordType":"ChildObject","filterBy":{"fieldName":"InspecReference","fieldValue":{ "value" : "14102C0A-60F2-4457-AC1C-601BC628BF47-184-000000012D225C57", "type" : "string" },"comparator":"EQUALS"}},"zoneID":{"zoneName":"_defaultZone"}} 

Allerdings bin ich von Wolkenjunge die folgende Fehlermeldung erhalten:

{ "uuid": "33db91f3-b768-4a68-9056 -216ecc033e9e“, "serverErrorCode": "BAD_REQUEST", "Grund": "BadRequestException: unerwartete Eingabe"}

ich vermute, ich habe das Datensatzfeld Dictionar y in der Abfrage falsch. In der Dokumentation ist jedoch nicht klar, wie dies für ein Referenzobjekt aussehen soll.

Antwort

1

Sie müssen das tatsächliche Objekt der Referenz neu erstellen. In diesem speziellen Fall sieht die JSON wie folgt aus:

{ 
    "query": { 
     "recordType": "ChildObject", 
     "filterBy": { 
      "fieldName": "InspecReference", 
      "fieldValue": { 
       "value": { 
        "recordName": "14102C0A-60F2-4457-AC1C-601BC628BF47-184-000000012D225C57", 
        "action": "NONE" 
       }, 
       "type": "REFERENCE" 
      }, 
      "comparator": "EQUALS" 
     } 
    }, 
    "zoneID": { 
     "zoneName": "_defaultZone" 
    } 
} 
+0

Das war sehr hilfreich für mich, weil ich nicht docs wieder finden konnte, wie ein CKReference mit CKWS in erster Linie zu erstellen. Vielen Dank! –

Verwandte Themen