JSON Import

 

 

<< Click to Display Table of Contents >>

Navigation:  Einstellungen > Kontakte > JSON >

JSON Import

 

 

 

JSON Import

 

Kontakte können aus JSON-Datenquellen mit URL-Verlinkung oder Dateiverknüpfung importiert werden. URL-Datenquellen sind URLs, die ohne Authentifizierung, mit http-AUTH oder oAUTH abgerufen werden können. Ebenso sind statische Dateien nutzbar, die einmalig für den Import angelegt oder zyklisch aktualisiert werden.

 

Ungeachtet der Datenquelle können Kontaktdaten „einmalig“ oder zyklisch importiert/synchronisiert werden. Zu Synchronisationszwecken ist eine eindeutige Kontakt-ID-Vergabe zu bevorzugen, um Duplikate bei zyklischen Importvorgängen zu vermeiden.

 

Für den Import aus lokalen Datenquellen nutzen Sie bitte eine Sonderform der Pfadangabe und fügen vor der Laufwerksangabe „file:///“ an, z.B. „file:///d:/json-csv/data.json“.
 

image13964628

 

Der JSON Aufbau unterliegt keinen speziellen Vorgaben. JSON Objekte können direkt angesprochen und für den Import angepasst werden. Dies gilt für einfache Objekte und auch für JSON Arrays.

 

Die Zuordnung der zu importierenden Daten erfolgt durch das einfache Prinzip der Wertezuordnung per Objekt-Pfadangabe: [Zu importierender Wert] -> [Lokaler Wert]

 
 

Beispiel eines einfachen JSON-Aufbaus zu einem einzelnen „Kontakt-Objekt“:
 
[

   {

  "id": "10201",

  "cn": "Tim1-WEB",

  "sn": "Harper1",

  "mail": "tim1@testmail.com",

  "title": "Product Manager1",

  "o": "Test Company Inc.1",

  "postalCode": "11111",

  "street": "street1",

  "jpegPhoto": "",

  "extension": "300",

  "data":

           {

          "postOfficeBox": "PO127653-T3",

          "st": "NY"

           },

 

  "phoneUseBLF":"1",

  "phoneUsePresence":"0",

  "AssignedSIPAccountID":"placetel"

   }

]

 

 
Import-Beispiel “Vorname”:

image1650853457
 

 

Import-Beispiel “Postschließfach”:
image1238394777

 

Für den Import aus einem Array gilt prinzipiell, dass jeder Array Index geprüft und importiert wird, vorausgesetzt es sind verwertbare Daten vorhanden.

 

 
"numbers": {

  "PRIVATE": [

       {

          "id": "",

          "number_e164": "4964454930560000",

          "number_disp": "4930567890"

       },

       {

          "id": "",

          "number_e164": "4964454930671111",

          "number_disp": "4930678900"

       }

   ]

 

Import-Beispiel der Telefonnummer “Privat”:

image74988159

 

In diesem Fall werden zwei Rufnummern desselben Typs importiert und erhalten anhand der Import-Zuordnung den Rufnummerntyp „Privat“.

 

Die Array Indexierung beginnt bei 0. Durch die Ergänzung [0] an dem Objektpfad „PRIVATE“ wird nur der Erste Array Index gelesen und eine Rufnummer gemäß Zuordnung importiert. Sinngemäß kann durch die Angabe eines Index ein beliebiger, einzelner Wert eines komplexen Arrays gelesen werden.

 

image1753425023

 

In manchen Fällen müssen die zu importierenden Daten modifiziert werden. Hierzu können zwei Funktionen genutzt werden, die einen Wert während des Datenimport beeinflussen. Diese Funktionen können in der Objektpfadangabe mehrfach kombiniert werden. Funktionen und Objektangaben werden logisch mit „|“ (Pipe) verknüpft.

 

 
Function Descriptions for Data Import Modification:
 

writeIfNotEmpty("<Value>") → Writes the value only if the result is not null.
 
Example:
writeIfNotEmpty("+")|privatephone
 

write("<Value>") → Always writes the value, regardless of the result.
 
Examples:
 
write("1")
write("Helogoland-")|firstname
 

writeIfValueMatches("Value to write"[JSON Item to write],"Matching value")|<JSONItemValueToMatch> → Writes the value only if the result matchs with the JSON Item.
 
Examples:
 
writeIfValueMatches("Margarethe", "Elias")|firstname
writeIfValueMatches("Margarethe"[name], "Elias")|firstname
writeIfValueMatches(""[name], "Elias")|firstname
 

Beispiel 1:

Expression:
writeIfNotEmpty("+")|numbers/PRIVATE/number_e164
 
Ergebnis:
+4964454930560000
+4964454930671111

Beispiel 2:

Expression:
writeIfNotEmpty("+")|numbers/PRIVATE/number_e164|write("123")
 
Ergebnis:
+4964454930560000123
+4964454930671111123

Beispiel 3:

Expression:
writeIfNotEmpty("123456789","496445493560000123")|numbers/PRIVATE/number_e164
 
Ergebnis:
123456789
 

Beispiel 4:

Expression:
writeIfNotEmpty("00"[numbers/PRIVATE/number_e164],"496445493560000123")|numbers/PRIVATE/number_e164
 
Ergebnis:
00496445493560000123

 

 

 

Besondere Handhabung bei dem Import von Gruppenzuordnungen ( > Version Build 22039):
 

Eine Gruppenzuordnung eines Kontaktes kann durch den Datenimport in das Feld „Zuordnung zu Kontaktgruppe“ erfolgen.
 

Es gilt:
 

Externe Gruppenbezeichnungen haben immer Vorrang vor den Programmgruppen.

Die interne Programmgruppe „Favorit“ ist die einzige Gruppe, die haptisch neben den extern zugelieferten Gruppen genutzt und zugeordnet werden kann.

Gruppenbezeichnungen werden bei dem Import NICHT „Case sensitive“ behandelt. Damit werden mehrfach angelegte Gruppen mit unterschiedlichen Schreibweisen eines Gruppentyps vermieden (Freunde, freunde, FreunDe).

Importierte Gruppen sind dauerhaft in der Anwendung hinterlegt. Nicht mehr benötigte Gruppen müssen in der Gruppenverwaltung der Anwendung gelöscht werden. Das Löschen per JSON ist aktuell nicht vorgesehen.

 

Import-Beispiel “Gruppen” aus einem Array:

 
"groups": [

   {

      "id": "14741",

      "name": "Freunde",

      "desc": "Freunde"

   },

   {

      "id": "14744",

      "name": "Partner",

      "desc": ""

   }

]

image1836908237

Sind noch keine Kontaktgruppen mit den Bezeichnungen „Freunde“ und „Partner“ vorhanden, dann werden diese angelegt. Weiterhin wird der sich im Importvorgang befindliche Kontakt den Gruppen „Freunde“ und „Partner“ zugewiesen.
 

 
Import von Bilddateien:

image2101555717

Bilddaten werden immer mit dem Bildformat JPEG erwartet

JPEG Dateien sind für jeglichen Import in das BASE64 Format zu konvertieren.