Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir: Tuval uygulamaları
Copilot Studio
Model temelli uygulamalar
Power Platform CLI
Dataverse işlevleri
Power Pages
Bir JSON dizesini yorumlar ve bir Dinamik değer veya bir tür sağlanmışsa belirli bir tür değeri döndürür.
Önemli
- İkinci bağımsız değişkeni ParseJSON kullanarak yazılan bir nesneye dönüştürmek deneysel bir özelliktir.
- Deneysel özellikler üretimde kullanım amacı taşımaz ve işlevleri sınırlıdır. Bu özellikler, önceden erişebilmeniz ve geri bildirim sağlamanız amacıyla resmi sürümden önce kullanıma sunulur. Daha fazla bilgi: Tuval uygulamasında deneysel, önizleme ve kullanımdan kaldırılan özellikleri anlama
- Bu makalede açıklanan davranış yalnızca 'deki > deneysel özelliği açık olduğunda kullanılabilir (varsayılan olarak kapalıdır).
- Görüşleriniz bizim için çok değerli. Lütfen düşüncelerinizi Power Apps deneysel özellikleri topluluk forumu aracılığıyla bize bildirin.
Description
İşlev geçerli ParseJSON bir JSON dizesini ayrıştırarak JSON yapısını temsil eden bir Dinamik değer döndürür.
İsteğe bağlı olarak, JSON'u doğrudan Power Fx formüllerinde kullanılabilecek türü belirlenmiş bir nesneye dönüştürmek için ikinci argümanı kullanın. Bu, kullanım noktasında dönüşümler ve zorlamalar artık gerekmediğinden sonucun tüketilmesini kolaylaştırır. Türü belirtilmemiş JSON, şu kurallarla türe eşlenir:
- JSON'da bulunmayan türdeki sütunlar boş olarak doldurulur.
- JSON'da bulunan ve türde bulunmayan sütunlar yoksayılır.
- Hem türde hem de JSON'da olan sütunlar, JSON değeri türe zorlanmalıdır.
ParseJSON Metin ECMA-404 ve IETF RFC 8259'da açıklanan JavaScript Nesne Gösterimi (JSON) biçimine göre geçerli değilse işlev hata döndürebilir.
Sözdizimi
ParseJSON( JSONString [ , Tür ] )
- JSONString – Gerekli. JSON yapısı metin olarak temsil edilir.
- Tür - İsteğe bağlı. JSON yapısı için Power Fx tür tanımı. Bu bağımsız değişken olmadan dinamik ParseJSON bir değer döndürür; bununla birlikte işlev belirli bir türlenmiş değer döndürür.
Dinamik değerleri dönüştürme
İkinci bağımsız değişken olmadan, ParseJSON desteklenen veri türlerindeki alan değerlerinin açıkça dönüştürülmesi gereken bir Dinamik değer döndürür. Aşağıdaki tabloda Power Apps içinde veri türleri ve ilgili bir JSON veri türü ve bunların nasıl dönüştürüleceği listelenir.
| Veri türü | JSON örnekleri | Description | Örnek dönüştürme |
|---|---|---|---|
| Boolean | { "bool": true } |
Boole, JSON içindeki açık bir türdür ve doğrudan dönüştürülebilir. | Boolean( ParseJSON("{ ""bool"": true }").bool ) |
| Color | { "color": "#102030" }{ "r": 255, "g": 128, "b": 0, "a": 0.5 } |
JSON içinde renk türü yok. Renk değerleri RGBA tamsayılarından veya onaltılık dizelerden oluşturulabilir. |
ColorValue( ParseJSON( "{ ""color"": ""#102030"" }" ).color ) With( { uo: ParseJSON( "{ ""r":255, ""g"": 128, ""b"": 0, "a"": 0,5 }" ) }, RGBA( Value( uo.r ), Value( uo.g ), Value( uo.b ), Value( uo.a ) ) ) |
| Para Birimi, Sayı | { "numbervalue": 123.5 } |
Sayılar doğrudan JSON içinde ondalık ayırıcı olarak nokta ( . ) ile gösterilir. | Value( ParseJSON("{ ""numbervalue"": 123.5 }").numbervalue ) |
| Tarih, Tarih Saat, Saat | { "start": "2022-05-10" }{ "start": "23:12:49.000" } |
JSON'un bir tarih veya saat türü yoktur, bu nedenle tarih ve saatler yalnızca dizeler olarak gösterebilir. Dinamik bir değer, ISO 8601 biçimindeki bir dizeden tarih, saat veya tarih saatine doğrudan dönüştürülebilir. Diğer işlevler için önce Text() işlevini kullanarak JSON alanını metne dönüştürün ve ardından varsayılan olarak geçerli kullanıcı ayarlarının dilini kullanacak olan DateValue(), TimeValue() veya DateTimeValue() işlevini kullanın. |
DateValue( ParseJSON("{ ""appointment"": ""2022-05-10"" }").appointment ) DateValue( Text( ParseJSON("{ ""randevu"": ""5 Mayıs 2022"" }").randevu ) ) |
| GUID | { "id": "123e4567-e89b-12d3-a456-426655440000" } |
JSON, GUId'ler için bir veri türüne sahip değil, bu nedenle yalnızca dize olarak gösterilebilir. | GUID( ParseJSON("{ ""id"": ""123e4567-e89b-12d3-a456-426655440000"" }").id ) |
| HyperLink, Görüntü, Ortam | { "URI": "https://northwindtraders.com/logo.jpg" } |
Bu veri türleri metin veri türleridir ve metne dönüştürülebilir ve ardından Power Apps uygulamasında kullanılabilir. | Text( ParseJSON("{ ""URI"": ""https://northwindtraders.com/logo.jpg"" }"). URI ) |
| Seçenek | { "status": 1 }{ "status": "Closed" } |
Seçimler, bir sayıyla desteklenen yerelleştirilmiş dizeler olarak sunulur. JSON() işlevi bir seçimi destek numarasına seri hale getirir. Sayı veya dizeden bir seçeneğe doğrudan dönüştürme yoktur ancak Switch() veya If() işlevleri metin veya sayı değeri üzerinde kullanılabilir. | Switch( Value( ParseJSON( "{ ""status"": 1 }" ).status ), 0, Status.Open, 1, Status.Closed ) |
| Kaydet | { "field": "value" } |
Bir JSON nesnesinden kayıt yapısına doğrudan dönüştürme yoktur, ancak kayıt oluşturmak için dinamik değerden tek tek alanlar alınabilir. | { field: Text( ParseJSON( "{ ""field"": ""value"" }" ).field ) } |
| Kayıt Başvurusu | Yok | Kayıt başvuruları, veri kaynaklarına özgüdür ve seri hale getirilemez veya seri halden geri alınamaz. Benzersiz anahtarları temsil eden alan değerleri daha sonra aranabilecek kayıtları tanımlamak için JSON'da kullanılabilir. | Yok |
| Table | [ { "id": 1, "name": "one" }, { "id": 2, "name": "two" } ][1, 2, 3] |
JSON, tablolara dönüştürülebilecek diziler içerebilir. Bu değerler kayıt dizileri veya etkin bir şekilde tek sütunlu tablolar olan değer dizileri olabilir. ParseJSON() dizileri yalnızca Dinamik değerlerin tek sütunlu tablosuna dönüştürülebilir ve ForAll() kullanılarak bu şekilde kullanılabilir veya kayıt türüne dönüştürülebilir. | ForAll( Table( ParseJSON( "[ {""id"": 1, ""name": ""one"" }, { ""id"": 2, ""name"": ""two"" } ]" ) ), { id: Value(ThisRecord.Value.id), name: Text(ThisRecord.Value.name) } ) |
| Metin | { "stringField": "this is text" } |
Metin, JSON içindeki açık bir türdür ve doğrudan dönüştürülebilir. | Text( ParseJSON( "{ ""stringField"": ""this is text"" }").stringField ) |
| İki seçenek | { "available": true }{ "available": "Yes" } |
İki seçenek, bir boole ile desteklenen yerelleştirilmiş dizeler olarak sunulur. JSON() işlevi, kendi boole değerine iki seçenek sağlar. Boole, sayı veya dizeden iki seçeneğe doğrudan dönüştürme yoktur ancak Switch() veya If() işlevleri metin, sayı veya boole değeri üzerinde kullanılabilir. | Switch( Boolean( ParseJSON( "{ ""available":true }" ).available ), false, Availability.No, true, Availability.Yes ) |
Örnekler
Alan değerlerine erişme
JsonString adlı bir değişkende aşağıdaki JSON dizesi verildiğinde
{ "parent": { "child": "text value" }, "number": 567 }
- Şu formül
text valuemetnini döndürür:Text( ParseJSON( JsonString ).parent.child ) - Şu formül
567sayısını döndürür:Value( ParseJSON( JsonString ).number )
Bir alan adının geçersiz bir tanımlayıcı adından oluştuğu durumlarda, alan adlarını tek tırnak işaretleri içine koyabilirsiniz.
JsonString adlı bir değişkende aşağıdaki JSON dizesi verildiğinde
{ "0": { "child-field": "text value" } }
- Şu formül
text valuemetnini döndürür:Text( ParseJSON( JsonString ).'0'.'child-field' )
Boşluklar
JsonString adlı bir değişkende aşağıdaki JSON dizesi verildiğinde
{ "text": "text value" , "number": 567, "empty": null }
- Mevcut olmayan alanlara erişmeyi denemek Blank() döndürür. Aşağıdaki formül
truedeğerini döndürür:IsBlank( Text( ParseJSON( JsonString ).parent.child ) ) - JSON
nulldeğerleri Blank() olarak kabul edilir. Aşağıdaki formültruedeğerini döndürür:IsBlank( Text( ParseJSON( JsonString ).empty ) )
Basit Diziler
JsonString adlı bir değişkende aşağıdaki JSON dizesi verildiğinde
{ "array": [1, 2, 3] }
- Dizi alanının tek sütunlu Dinamik değerler tablosundaki ikinci sayıya erişmek ve Value() kullanarak bir sayıya dönüştürmek döndürür
2:Value( Index( ParseJSON( JsonString ).array, 2 ) ) - Dizi alanındaki dinamik değerlerin tek sütunlu tablosunu tek sütunlu sayı
{ Value: 1 }, { Value: 2 }, { Value: 3 }tablosuna dönüştürme:ForAll( ParseJSON( JsonString ).array, Value( ThisRecord ) )
Kayıt Dizileri
JsonString adlı bir değişkende aşağıdaki JSON dizesi verildiğinde
{ "array": [
{ "id": 1, "name": "One"},
{ "id": 2, "name": "Two"}
] }
ForAll() ile doğrudan yazılan kayıt tablosuna dönüştürme işlemi
ThisRecord.[fieldname]alanlara erişmek ve bunları belirli türlere dönüştürmek için kullanılarak yapılabilir:ForAll( ParseJSON( JsonString ).array, { id: Value(ThisRecord.id), name: Text(ThisRecord.name) })
Diziden Tabloya
-
Table() işlevini kullanarak dinamik değerleri tabloya dönüştürmek, dinamik değerlerin tek sütunlu bir tablosuna neden olur. Bu durumda, bu nesneye
Value(tek) sütunu kullanarak erişilebilir ve nesnenin daha önce açıklanan türlere dönüştürülmesi gerekir.
JsonString adlı bir değişkende aşağıdaki JSON dizesi verildiğinde
{ "array": [1, 2, 3] }
Table() , dizideki sayı için tek sütunlu Değer içeren tek sütunlu bir dinamik değerler tablosu döndürür...
Set(untypedTable, Table( ParseJSON( JsonString ).array ));
Value( Index(untypedTable, 1).Value.Value )
```
Given the following JSON string in a variable named `JsonString`
```JSON
{ "array": [
{ "id": 1, "name": "One"},
{ "id": 2, "name": "Two"}
] }
Table() dizideki her json nesnesini temsil eden dinamik değerlerden oluşan tek sütunlu bir tablo döndürür.
Set(untypedTable, Table( ParseJSON( JsonString ).array ) );
Text( Index(untypedTable, 1).Value.name )