تحويل مطالبات JavaScript Object Notation

توفر هذه المقالة أمثلة لاستخدام تحويلات مطالبات JSON لمخطط إطار عمل تجربة الهوية في Microsoft Azure Active Directory B2C (Azure AD B2C). لمزيد من المعلومات، راجع تحويلات المطالبات.

CreateJsonArray

إنشاء صفيف عنصر واحد JavaScript Object Notation من قيمة مطالبة. تحقق من العرض التوضيحي المباشر لتحول هذه المطالبات.

العنصر نوع مطالبة التحول نوع البيانات ملاحظات
InputClaim inputClaim سلسلة المطالبة التي ستضاف إلى مطالبة الناتج.
OutputClaim outputClaim سلسلة تم استدعاء سلسلة JavaScript Object Notation التي نتجت بعد تحويل المطالبات هذا.

مثال على CreateJsonArray

يُنشئ المثال التالي صفيف واحد JavaScript Object Notation.

<ClaimsTransformation Id="createlJsonPayload" TransformationMethod="CreateJsonArray">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="email" TransformationClaimType="inputClaim" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="result" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • مطالبات الإدخال:
    • inputClaim: someone@example.com
  • مطالبات الناتج:
    • مطالبة ناتج: ["someone@contoso.com"]

GenerateJson

استخدم قيم المطالبة أو الثوابت لإنشاء سلسلة JavaScript Object Notation. يتم استخدام سلسلة المسار الواقعة بعد رمز النقطة؛ للإشارة إلى مكان إدراج البيانات في سلسلة JavaScript Object Notation. بعد التقسيم بواسطة النقاط، يتم تفسير أي أعداد صحيحة كفهرس صفيف JavaScript Object Notation، ويتم تفسير الأعداد غير الصحيحة كفهرس عنصر JavaScript Object Notation.

تحقق من العرض التوضيحي المباشر لتحول هذه المطالبات.

العنصر نوع مطالبة التحول نوع البيانات ملاحظات
مطالبة إدخال أي سلسلة تقع بعد رمز النقطة سلسلة مسار JavaScript Object Notation من JavaScript Object Notation؛ حيث يتم إدراج قيمة المطالبة فيه.
InputParameter أي سلسلة تقع بعد رمز النقطة سلسلة مسار JavaScript Object Notation من JavaScript Object Notation أين يتم إدراج قيمة المطالبة فيه.
مطالبة إخراج outputClaim سلسلة سلسلة JavaScript Object Notation التي تم إنشاؤها.

صفائف JSON

لإضافة كائنات JSON إلى صفيف JSON، استخدم تنسيق اسم الصفيفوالفهرس في الصفيف. الصفيف يستند إلى صفر. ابدأ من الصفر إلى N، دون تخطي أي رقم. يمكن أن تحتوي العناصر الموجودة في الصفيف على أي كائن. على سبيل المثال، يحتوي العنصر الأول على كائنين، التطبيقومعرف التطبيق. يحتوي العنصر الثاني على عنصر واحد، برنامج. يحتوي العنصر الثالث على أربعة عناصر، لون، لغة، شعاروخلفية.

يوضح المثال التالي كيفية تكوين صفائف JSON. يستخدم صفيف رسائل البريد الإلكترونيInputClaims مع القيم الديناميكية. يستخدم صفيف القيمInputParameters مع قيم ثابتة.

<ClaimsTransformation Id="GenerateJsonPayload" TransformationMethod="GenerateJson">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="mailToName1" TransformationClaimType="emails.0.name" />
    <InputClaim ClaimTypeReferenceId="mailToAddress1" TransformationClaimType="emails.0.address" />
    <InputClaim ClaimTypeReferenceId="mailToName2" TransformationClaimType="emails.1.name" />
    <InputClaim ClaimTypeReferenceId="mailToAddress2" TransformationClaimType="emails.1.address" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="values.0.app" DataType="string" Value="Mobile app" />
    <InputParameter Id="values.0.appId" DataType="string" Value="123" />
    <InputParameter Id="values.1.program" DataType="string" Value="Holidays" />
    <InputParameter Id="values.2.color" DataType="string" Value="Yellow" />
    <InputParameter Id="values.2.language" DataType="string" Value="Spanish" />
    <InputParameter Id="values.2.logo" DataType="string" Value="contoso.png" />
    <InputParameter Id="values.2.background" DataType="string" Value="White" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="result" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>

نتيجة هذا التحول المطالبات:

{
  "values": [
    {
      "app": "Mobile app",
      "appId": "123"
    },
    {
      "program": "Holidays"
    },
    {
      "color": "Yellow",
      "language": "Spanish",
      "logo": "contoso.png",
      "background": "White"
    }
  ],
  "emails": [
    {
      "name": "Joni",
      "address": "joni@contoso.com"
    },
    {
      "name": "Emily",
      "address": "emily@contoso.com"
    }
  ]
}

لتحديد صفيف JSON في كل من مطالبات الإدخال ومعلمات الإدخال، يجب بدء تشغيل الصفيف في العنصر InputClaims، من صفر إلى N. بعد ذلك، في العنصر InputParameters تابع الفهرس من الفهرس الأخير.

يوضح المثال التالي صفيفا معرفا في كل من مطالبات الإدخال ومعلمات الإدخال. يتم تعريف العنصر الأول من صفيف values.0القيم في مطالبات الإدخال. تستمر معلمات الإدخال من الفهرس واحد values.1 إلى فهرسين values.2.

<ClaimsTransformation Id="GenerateJsonPayload" TransformationMethod="GenerateJson">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="app" TransformationClaimType="values.0.app" />
    <InputClaim ClaimTypeReferenceId="appId" TransformationClaimType="values.0.appId"  />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="values.1.program" DataType="string" Value="Holidays" />
    <InputParameter Id="values.2.color" DataType="string" Value="Yellow" />
    <InputParameter Id="values.2.language" DataType="string" Value="Spanish" />
    <InputParameter Id="values.2.logo" DataType="string" Value="contoso.png" />
    <InputParameter Id="values.2.background" DataType="string" Value="White" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="result" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>

مثال على GenerateJson

يُنشئ المثال التالي سلسلة JavaScript Object Notation استنادًا إلى قيمة مطالبة "البريد الإلكتروني" و"OTP" وسلاسل ثابتة.

<ClaimsTransformation Id="GenerateRequestBody" TransformationMethod="GenerateJson">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="email" TransformationClaimType="personalizations.0.to.0.email" />
    <InputClaim ClaimTypeReferenceId="otp" TransformationClaimType="personalizations.0.dynamic_template_data.otp" />
    <InputClaim ClaimTypeReferenceId="copiedEmail" TransformationClaimType="personalizations.0.dynamic_template_data.verify-email" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="template_id" DataType="string" Value="d-4c56ffb40fa648b1aa6822283df94f60"/>
    <InputParameter Id="from.email" DataType="string" Value="service@contoso.com"/>
    <InputParameter Id="personalizations.0.subject" DataType="string" Value="Contoso account email verification code"/>
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="requestBody" TransformationClaimType="outputClaim"/>
  </OutputClaims>
</ClaimsTransformation>

يقوم تحويل المطالبات التالي بإخراج مطالبة سلسلة JavaScript Object Notation، والتي تصبح نص الطلب المرسل إلى SendGrid (جهة خارجية موفرة للبريد الإلكتروني). يتم تحديد بنية عنصر JavaScript Object Notation بواسطة المعرفات الموجودة في رمز النقطة لمعلمات InputParameters و TransformationClaimTypes الخاصة بـ InputClaims تتضمن الأرقام في رمز النقطة المصفوفات. تأتي القيم من قيم مطالبات الإدخال وخصائص "القيمة" معلمات الإدخال.

  • مطالبات الإدخال:
    • email, transformation claim type personalizations.0.to.0.email: "someone@example.com"
    • copiedEmail، نوع تحويل المطالباتpersonalizations.0.dynamic_template_data.verify-email: "someone@example.com"
    • ⁩otp⁦⁩, transformation claim type ⁦⁩personalizations.0.dynamic_template_data.otp⁦⁩ "346349"
  • معلمة الإدخال:
    • ⁩template_id⁦⁩: "d-4c56ffb40fa648b1aa6822283df94f60"
    • ⁩من البريد الإلكتروني⁧⁩: ⁧service@contoso.com⁩
    • ⁩personalizations.0.subject⁧⁩: رمز التحقق من البريد الإلكتروني الخاص بحساب Contoso
  • مطالبة الإخراج:
    • مطالبة ناتج:

      {
        "personalizations": [
          {
            "to": [
              {
                "email": "someone@example.com"
              }
            ],
            "dynamic_template_data": {
              "otp": "346349",
              "verify-email" : "someone@example.com"
            },
            "subject": "Contoso account email verification code"
          }
        ],
        "template_id": "d-989077fbba9746e89f3f6411f596fb96",
        "from": {
          "email": "service@contoso.com"
        }
      }
      

مثال آخر على GenerateJson

يُنشئ المثال التالي سلسلة JavaScript Object Notation استنادًا إلى قيم المطالبة وسلاسل ثابتة.

<ClaimsTransformation Id="GenerateRequestBody" TransformationMethod="GenerateJson">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="email" TransformationClaimType="customerEntity.email" />
    <InputClaim ClaimTypeReferenceId="objectId" TransformationClaimType="customerEntity.userObjectId" />
    <InputClaim ClaimTypeReferenceId="givenName" TransformationClaimType="customerEntity.firstName" />
    <InputClaim ClaimTypeReferenceId="surname" TransformationClaimType="customerEntity.lastName" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="customerEntity.role.name" DataType="string" Value="Administrator"/>
    <InputParameter Id="customerEntity.role.id" DataType="long" Value="1"/>
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="requestBody" TransformationClaimType="outputClaim"/>
  </OutputClaims>
</ClaimsTransformation>

يقوم تحويل المطالبات التالي بإخراج مطالبة سلسلة JavaScript Object Notation، والتي تصبح نص الطلب المرسل إلى REST API. يتم تحديد بنية عنصر JavaScript Object Notation بواسطة المعرفات الموجودة في رمز النقطة لمعلمات InputParameters و TransformationClaimTypes الخاصة بـ InputClaims تأتي القيم من قيم مطالبات الإدخال، وخصائص "القيمة" الخاصة بمعلمات الإدخال.

  • مطالبات الإدخال:
    • email, transformation claim type customerEntity.email: "john.s@contoso.com"
    • ⁩objectId⁧⁩، نوع تحويل المطالبة⁧⁩customerEntity.userObjectId⁧⁩ "01234567-89ab-cdef-0123-456789abcdef"
    • ⁩الاسم المعطى⁧⁩، نوع تحويل المطالبة⁧⁩customerEntity.firstName⁧⁩: «جون»
    • ⁩البريد الإلكتروني⁧⁩، نوع تحويل المطالبة⁧⁩customerEntity.lastName⁧⁩: «سميث»
  • معلمة الإدخال:
    • ⁩customerEntity.role.name⁦⁩: "Administrator"
    • ⁩customerEntity.role.id⁧⁩1
  • مطالبة الإخراج:
    • requestBody:

      {
         "customerEntity":{
            "email":"john.s@contoso.com",
            "userObjectId":"01234567-89ab-cdef-0123-456789abcdef",
            "firstName":"John",
            "lastName":"Smith",
            "role":{
               "name":"Administrator",
               "id": 1
            }
         }
      }
      

يقبل تحويل مطالبات GenerateJson سلاسل عادية. إذا كانت مطالبة الإدخال تحتوي على سلسلة JSON، فسيتم إلغاء هذه السلسلة. في المثال التالي، إذا كنت تستخدم إخراج البريد الإلكتروني من CreateJsonArray أعلاه، أي [""someone@contoso.com]، كمعلمة إدخال، فسيبدو البريد الإلكتروني كما هو موضح في مطالبة JSON التالية:

  • مطالبة الإخراج:
    • requestBody:

      {
         "customerEntity":{
            "email":"[\"someone@contoso.com\"]",
            "userObjectId":"01234567-89ab-cdef-0123-456789abcdef",
            "firstName":"John",
            "lastName":"Smith",
            "role":{
               "name":"Administrator",
               "id": 1
            }
         }
      }
      

GetClaimFromJson

الحصول على عنصر محدد من بيانات JavaScript Object Notation. تحقق من العرض التوضيحي المباشر لتحول هذه المطالبات.

العنصر نوع مطالبة التحول نوع البيانات ملاحظات
مطالبة إدخال inputJson سلسلة المطالبة التي يستخدمها تحويل المطالبات للحصول على العنصر.
معلمة إدخال مطالبة استخلاص سلسلة اسم عنصر JavaScript Object Notation لاستخراجه.
مطالبة إخراج extractedClaim سلسلة تم استدعاء المطالبة التي نتجت بعد تحويل المطالبات هذا، قيمة العنصر المحددة في معلمة الإدخال ⁧⁩claimToExtract⁧⁩.

مثال على GetClaimFromJson

في المثال التالي، يقوم تحويل المطالبات باستخراج⁧emailAddress⁩العنصر من بيانات⁧{"emailAddress": "someone@example.com", "displayName": "Someone"}⁩JavaScript Object Notation:

<ClaimsTransformation Id="GetEmailClaimFromJson" TransformationMethod="GetClaimFromJson">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="customUserData" TransformationClaimType="inputJson" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="claimToExtract" DataType="string" Value="emailAddress" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="extractedEmail" TransformationClaimType="extractedClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • مطالبات الإدخال:
    • ⁩inputJson⁦⁩: {"emailAddress": "⁦someone@example.com⁩", "displayName": "Someone"}
  • معلمة الإدخال:
    • ⁩مطالبة استخلاص⁧⁩: عنوان البريد الإلكتروني
  • مطالبات الإخراج:
    • ⁩مطالبة مستخلصة⁧⁩:⁧someone@example.com⁩

مثال آخر على GetClaimFromJson

يحصل تحويل المطالبات GetClaimFromJson على عنصر واحد من بيانات JavaScript Object Notation. يوجد في المثال السابق، عنوان البريد الإلكتروني. للحصول على displayName، أنشئ تحويل مطالبات آخر. على سبيل المثال:

<ClaimsTransformation Id="GetDispalyNameClaimFromJson" TransformationMethod="GetClaimFromJson">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="customUserData" TransformationClaimType="inputJson" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="claimToExtract" DataType="string" Value="displayName" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="displayName" TransformationClaimType="extractedClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • مطالبات الإدخال:
    • ⁩inputJson⁦⁩: {"emailAddress": "⁦someone@example.com⁩", "displayName": "Someone"}
  • معلمة الإدخال:
    • ⁩claimToExtract⁦⁩: displayName
  • مطالبات الإخراج:
    • ⁩مطالبة مستخلصة⁧⁩: شخص ما

GetClaimsFromJsonArray

احصل على قائمة العناصر المحددة من بيانات JavaScript Object Notation. تحقق من العرض التوضيحي المباشر لتحول هذه المطالبات.

العنصر نوع مطالبة التحول نوع البيانات ملاحظات
مطالبة إدخال jsonSourceClaim سلسلة المطالبة مع حمولة JavaScript Object Notation. المطالبة التي يستخدمها تحويل المطالبات للحصول على المطالبات.
معلمة إدخال errorOnMissingClaims منطقي تحديد ما إذا كان يتم طرح خطأ في حالة أن تكون إحدى المطالبات مفقودة.
معلمة إدخال إدراج مطالبة فارغة سلسلة حدد وجود تضمين المطالبات الفارغة من عدمه.
معلمة إدخال jsonSourceKeyName سلسلة الاسم الخاص بمفتاح العنصر
معلمة إدخال jsonSourceValueName سلسلة الاسم الخاص بقيمة العنصر
مطالبة إخراج المجموعة سلسلة وint ومنطقي والتاريخ والوقت قائمة المطالبات لاستخراج. وينبغي أن يكون اسم المطالبة مساويًا لما هو محدد في مطالبة إدخال ⁧⁩jsonSourceClaim⁧⁩.

مثال على GetClaimsFromJsonArray

في المثال التالي، تحويل المطالبات يستخرج المطالبات التالية: البريد الإلكتروني (سلسلة)، اسم العرض (سلسلة)، رقم العضوية (int)، نشط (منطقي)، وتاريخ الميلاد (التاريخ والوقت) من بيانات JavaScript Object Notation.

<ClaimsTransformation Id="GetClaimsFromJson" TransformationMethod="GetClaimsFromJsonArray">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="jsonSourceClaim" TransformationClaimType="jsonSource" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="errorOnMissingClaims" DataType="boolean" Value="false" />
    <InputParameter Id="includeEmptyClaims" DataType="boolean" Value="false" />
    <InputParameter Id="jsonSourceKeyName" DataType="string" Value="key" />
    <InputParameter Id="jsonSourceValueName" DataType="string" Value="value" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="email" />
    <OutputClaim ClaimTypeReferenceId="displayName" />
    <OutputClaim ClaimTypeReferenceId="membershipID" />
    <OutputClaim ClaimTypeReferenceId="active" />
    <OutputClaim ClaimTypeReferenceId="birthDate" />
  </OutputClaims>
</ClaimsTransformation>
  • مطالبات الإدخال:

    • jsonSourceClaim:

      [
        {
          "key": "email",
          "value": "someone@example.com"
        },
        {
          "key": "displayName",
          "value": "Someone"
        },
        {
          "key": "membershipID",
          "value": 6353399
        },
        {
          "key": "active",
          "value": true
        },
        {
          "key": "birthDate",
          "value": "2005-09-23T00:00:00Z"
        }
      ]
      
  • معلمات الإدخال:

    • ⁩errorOnMissingClaims⁦⁩: false
    • ⁩إدراج مطالبات فارغة⁧⁩: خطأ
    • ⁩jsonSourceKeyName⁦⁩: key
    • ⁩jsonSourceValueName⁦⁩: value
  • مطالبات الإخراج:

    • ⁩البريد الإلكتروني⁧⁩: someone@example.com⁩
    • ⁩اسم العرض⁧⁩: «شخص ما»
    • membershipID: 6353399
    • ⁩نشط⁧⁩: صحيح
    • تاريخ الميلاد: 2005-09-23T00:00:00Z

GetClaimsFromJsonArrayV2

احصل على قائمة بالعناصر المحددة من عناصر JSON لمجموعة سلسلة. تحقق من العرض التوضيحي المباشر لتحول هذه المطالبات.

العنصر نوع مطالبة التحول نوع البيانات ملاحظات
مطالبة إدخال jsonSourceClaim stringCollection مطالبة مجموعة السلسلة مع حمولات JSON. المطالبة التي يستخدمها تحويل المطالبات للحصول على المطالبات.
معلمة إدخال errorOnMissingClaims منطقي تحديد ما إذا كان يتم طرح خطأ في حالة أن تكون إحدى المطالبات مفقودة.
معلمة إدخال إدراج مطالبة فارغة سلسلة حدد وجود تضمين المطالبات الفارغة من عدمه.
معلمة إدخال jsonSourceKeyName سلسلة الاسم الخاص بمفتاح العنصر
معلمة إدخال jsonSourceValueName سلسلة الاسم الخاص بقيمة العنصر
مطالبة إخراج المجموعة سلسلة وint ومنطقي والتاريخ والوقت قائمة المطالبات لاستخراج. وينبغي أن يكون اسم المطالبة مساويًا لما هو محدد في مطالبة إدخال ⁧⁩jsonSourceClaim⁧⁩.

مثال على GetClaimsFromJsonArrayV2

في المثال التالي، تحويل المطالبات يستخرج المطالبات التالية: البريد الإلكتروني (سلسلة)، اسم العرض (سلسلة)، رقم العضوية (int)، نشط (منطقي)، وتاريخ الميلاد (التاريخ والوقت) من بيانات JavaScript Object Notation.

<ClaimsTransformation Id="GetClaimsFromJson" TransformationMethod="GetClaimsFromJsonArrayV2">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="jsonSourceClaim" TransformationClaimType="jsonSource" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="errorOnMissingClaims" DataType="boolean" Value="false" />
    <InputParameter Id="includeEmptyClaims" DataType="boolean" Value="false" />
    <InputParameter Id="jsonSourceKeyName" DataType="string" Value="key" />
    <InputParameter Id="jsonSourceValueName" DataType="string" Value="value" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="email" />
    <OutputClaim ClaimTypeReferenceId="displayName" />
    <OutputClaim ClaimTypeReferenceId="membershipID" />
    <OutputClaim ClaimTypeReferenceId="active" />
    <OutputClaim ClaimTypeReferenceId="birthDate" />
  </OutputClaims>
</ClaimsTransformation>
  • مطالبات الإدخال:

    • jsonSourceClaim[0] (عنصر مجموعة السلسلة الأول):

        {
          "key": "email",
          "value": "someone@example.com"
        }
      
    • jsonSourceClaim[1] (عنصر مجموعة السلسلة الثاني):

        {
          "key": "displayName",
          "value": "Someone"
        }
      
    • jsonSourceClaim[2] (عنصر ثالث لمجموعة السلسلة):

        {
          "key": "membershipID",
          "value": 6353399
        }
      
    • jsonSourceClaim[3] (عنصر مجموعة السلسلة الرابع):

        {
          "key": "active",
          "value": true
        }
      
    • jsonSourceClaim[4] (عنصر المجموعة الخامسة لمجموعة السلسلة):

        {
          "key": "birthDate",
          "value": "2005-09-23T00:00:00Z"
        }
      
  • معلمات الإدخال:

    • ⁩errorOnMissingClaims⁦⁩: false
    • ⁩إدراج مطالبات فارغة⁧⁩: خطأ
    • ⁩jsonSourceKeyName⁦⁩: key
    • ⁩jsonSourceValueName⁦⁩: value
  • مطالبات الإخراج:

    • ⁩البريد الإلكتروني⁧⁩: someone@example.com⁩
    • ⁩اسم العرض⁧⁩: «شخص ما»
    • membershipID: 6353399
    • ⁩نشط⁧⁩: صحيح
    • تاريخ الميلاد: 2005-09-23T00:00:00Z

GetNumericClaimFromJson

احصل على عنصر رقمي محدد (طويل) من بيانات JavaScript Object Notation. تحقق من العرض التوضيحي المباشر لتحول هذه المطالبات.

العنصر نوع مطالبة التحول نوع البيانات ملاحظات
مطالبة إدخال inputJson سلسلة المطالبة مع حمولة JavaScript Object Notation. يستخدم تحويل المطالبات هذه المطالبة للحصول على مطالبة رقمية.
معلمة إدخال مطالبة استخلاص سلسلة اسم عنصر JavaScript Object Notation لاستخراجه.
مطالبة إخراج extractedClaim طويل تم استدعاء المطالبة التي نتجت بعد تحويل المطالبات هذا، قيمة العنصر المحددة في معلمة الإدخال ⁧⁩claimToExtract⁧⁩.

مثال على GetNumericClaimFromJson

يقوم تحويل المطالبات، في المثال التالي باستخراج⁧id⁩العنصر من بيانات JavaScript Object Notation.

<ClaimsTransformation Id="GetIdFromResponse" TransformationMethod="GetNumericClaimFromJson">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="exampleInputClaim" TransformationClaimType="inputJson" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="claimToExtract" DataType="string" Value="id" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="membershipId" TransformationClaimType="extractedClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • مطالبات الإدخال:

    • inputJson:

      {
        "emailAddress": "someone@example.com",
        "displayName": "Someone",
        "id": 6353399
      }
      
  • معلمات الإدخال

    • claimToExtract: id
  • مطالبات الإخراج:

    • ⁩مطالبة مستخلصة⁧⁩: 6353399

GetSingleItemFromJson

الحصول على العنصر الأول من بيانات JavaScript Object Notation. تحقق من العرض التوضيحي المباشر لتحول هذه المطالبات.

العنصر نوع مطالبة التحول نوع البيانات ملاحظات
مطالبة إدخال inputJson سلسلة المطالبة مع حمولة JavaScript Object Notation. يستخدم تحويل المطالبات هذه المطالبة للحصول على العنصر من بيانات JavaScript Object Notation.
مطالبة إخراج المفتاح سلسلة مفتاح العنصر الأول في JavaScript Object Notation.
مطالبة إخراج القيمة سلسلة مخزن العنصر الأول في JavaScript Object Notation.

مثال على GetSingleItemFromJson

يقوم تحويل المطالبات، في المثال التالي باستخراج العنصر الأول (الاسم المُعطى) من بيانات JavaScript Object Notation.

<ClaimsTransformation Id="GetGivenNameFromResponse" TransformationMethod="GetSingleItemFromJson">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="json" TransformationClaimType="inputJson" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="givenNameKey" TransformationClaimType="key" />
    <OutputClaim ClaimTypeReferenceId="givenName" TransformationClaimType="value" />
  </OutputClaims>
</ClaimsTransformation>
  • مطالبات الإدخال:

    • inputJson:

      {
        "givenName": "Emily",
        "lastName": "Smith"
      }
      
  • مطالبات الإخراج:

    • ⁩مفتاح⁧⁩: الاسم المعطى
    • ⁩القيمة⁧⁩: إيميلتي

GetSingleValueFromJsonArray

الحصول على العنصر الأول من صفيف بيانات JavaScript Object Notation. تحقق من العرض التوضيحي المباشر لتحول هذه المطالبات.

العنصر نوع مطالبة التحول نوع البيانات ملاحظات
مطالبة إدخال inputJsonClaim سلسلة المطالبة مع حمولة JavaScript Object Notation. يستخدم تحويل المطالبات هذه المطالبة للحصول على القيمة من بيانات JavaScript Object Notation.
مطالبة إخراج extractedClaim سلسلة تم استدعاء المطالبة التي نتجت بعد تحويل المطالبات هذا، العنصر الأول في الصفيف JavaScript Object Notation.

مثال على GetSingleValueFromJsonArray

في المثال التالي، يستخرج تحويل المطالبات العنصر الأول (عنوان البريد الإلكتروني) من مصفوفة JSON ["someone@example.com", "Someone", 6353399].

<ClaimsTransformation Id="GetEmailFromJson" TransformationMethod="GetSingleValueFromJsonArray">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="userData" TransformationClaimType="inputJsonClaim" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="email" TransformationClaimType="extractedClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • مطالبات الإدخال:
    • ⁩inputJsonClaim⁦⁩: ["⁦someone@example.com⁩", "Someone", 6353399]
  • مطالبات الإخراج:
    • ⁩مطالبة مستخلصة⁧⁩:⁧someone@example.com⁩

XmlStringToJsonString

تحويل بيانات XML إلى تنسيق JavaScript Object Notation. تحقق من العرض التوضيحي المباشر لتحول هذه المطالبات.

العنصر نوع مطالبة التحول نوع البيانات ملاحظات
مطالبة إدخال xml سلسلة المطالبة مع حمولة XML. يستخدم تحويل المطالبات هذه المطالبة لتحويل البيانات من XML إلى تنسيق JavaScript Object Notation.
مطالبة إخراج JavaScript Object Notation سلسلة تم استدعاء المطالبة التي نتجت بعد تحويل المطالبات هذا، البيانات الموجودة في تنسيق JavaScript Object Notation.
<ClaimsTransformation Id="ConvertXmlToJson" TransformationMethod="XmlStringToJsonString">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="intpuXML" TransformationClaimType="xml" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="outputJson" TransformationClaimType="json" />
  </OutputClaims>
</ClaimsTransformation>

مثال على XmlStringToJsonString

يقوم تحويل المطالبات‘ في المثال التالي بتحويل بيانات XML التالية إلى تنسيق JavaScript Object Notation.

مطالبة الإدخال:

<user>
  <name>Someone</name>
  <email>someone@example.com</email>
</user>

مطالبة الإخراج:

{
  "user": {
    "name":"Someone",
    "email":"someone@example.com"
  }
}

الخطوات التالية

  • يمكنك العثور على المزيد من أمثلة تحويل المطالبات في مستودع GitHub لمجتمع متاجرة عمل-مستهلك في Microsoft Azure Active Directory