PowerApps:将 Table 格式化为 JSON
PowerApps: Format Table to JSON
我想将我的数据从 PowerApps 中的 table 格式转换为 JSON 格式。
这是我的数据:
这是我当前的代码:
Set(
varJSONProductTagging,
JSON(
<-Source->,
"ProductCode",
"Description",
"KPICode",
"DSLType"
),
JSONFormat.IndentFour
));
结果如下:
[{
"ProductCode": "SD204",
"Description": "Broadband Business SDSL 2Mb - Managed",
"KPICode": "DSL3",
"DSLType": "SDSL"
},
{
"ProductCode": "SD219",
"Description": "Broadband Business SDSL 2Mb - Wires Only",
"KPICode": "DSL3",
"DSLType": "SDSL"
},
{
"ProductCode": "IOMDDI35",
"Description": "ISDN DDI: Nobles Hospital - 650000"
}]
如您所见,在第 3 组中,缺少 KPICode 和 DSL Type,因为它们为空。我想要做的是仍然包括其值设置为 null 的列。
像这样:
[
{
"ProductCode": "SD204",
"Description": "Broadband Business SDSL 2Mb - Managed",
"KPICode": "DSL3",
"DSLType": "SDSL"
},
{
"ProductCode": "SD219",
"Description": "Broadband Business SDSL 2Mb - Wires Only",
"KPICode": "DSL3",
"DSLType": "SDSL"
},
{
"ProductCode": "IOMDDI35",
"Description": "ISDN DDI: Nobles Hospital - 650000"
"KPICode": null,
"DSLType": null
}
]
有什么方法可以在 powerapps 中做到这一点?
您可以通过使用 ForAll function 强制定义字段来强制“未定义”字段变为空白(空)值。在这种情况下,你会得到类似这样的东西:
Set(
varJSONProductTagging,
JSON(
ForAll(
ShowColumns(
<-Source->,
"ProductCode",
"Description",
"KPICode",
"DSLType"),
{
ProductCode: ProductCode,
Description: Description,
KPICode: Coalesce(KPICode, Blank()),
DSLType: Coalesce(DSLType, Blank())
}
),
JSONFormat.IndentFour
));
请注意,Coalesce function 不区分未定义、空白或空字符串。在这种情况下,如果 KPICode(或 DSLType)的值之一是空文本,它将在 JSON 输出中转换为 null。如果您不希望这种情况发生,您可以明确地与空白值进行比较:
Set(
varJSONProductTagging,
JSON(
ForAll(
ShowColumns(
<-Source->,
"ProductCode",
"Description",
"KPICode",
"DSLType"),
{
ProductCode: ProductCode,
Description: Description,
KPICode: If(KPICode = Blank(), Blank(), KPICode),
DSLType: If(DSLType = Blank(), Blank(), DSLType)
}
),
JSONFormat.IndentFour
));
我想将我的数据从 PowerApps 中的 table 格式转换为 JSON 格式。
这是我的数据:
这是我当前的代码:
Set(
varJSONProductTagging,
JSON(
<-Source->,
"ProductCode",
"Description",
"KPICode",
"DSLType"
),
JSONFormat.IndentFour
));
结果如下:
[{
"ProductCode": "SD204",
"Description": "Broadband Business SDSL 2Mb - Managed",
"KPICode": "DSL3",
"DSLType": "SDSL"
},
{
"ProductCode": "SD219",
"Description": "Broadband Business SDSL 2Mb - Wires Only",
"KPICode": "DSL3",
"DSLType": "SDSL"
},
{
"ProductCode": "IOMDDI35",
"Description": "ISDN DDI: Nobles Hospital - 650000"
}]
如您所见,在第 3 组中,缺少 KPICode 和 DSL Type,因为它们为空。我想要做的是仍然包括其值设置为 null 的列。 像这样:
[
{
"ProductCode": "SD204",
"Description": "Broadband Business SDSL 2Mb - Managed",
"KPICode": "DSL3",
"DSLType": "SDSL"
},
{
"ProductCode": "SD219",
"Description": "Broadband Business SDSL 2Mb - Wires Only",
"KPICode": "DSL3",
"DSLType": "SDSL"
},
{
"ProductCode": "IOMDDI35",
"Description": "ISDN DDI: Nobles Hospital - 650000"
"KPICode": null,
"DSLType": null
}
]
有什么方法可以在 powerapps 中做到这一点?
您可以通过使用 ForAll function 强制定义字段来强制“未定义”字段变为空白(空)值。在这种情况下,你会得到类似这样的东西:
Set(
varJSONProductTagging,
JSON(
ForAll(
ShowColumns(
<-Source->,
"ProductCode",
"Description",
"KPICode",
"DSLType"),
{
ProductCode: ProductCode,
Description: Description,
KPICode: Coalesce(KPICode, Blank()),
DSLType: Coalesce(DSLType, Blank())
}
),
JSONFormat.IndentFour
));
请注意,Coalesce function 不区分未定义、空白或空字符串。在这种情况下,如果 KPICode(或 DSLType)的值之一是空文本,它将在 JSON 输出中转换为 null。如果您不希望这种情况发生,您可以明确地与空白值进行比较:
Set(
varJSONProductTagging,
JSON(
ForAll(
ShowColumns(
<-Source->,
"ProductCode",
"Description",
"KPICode",
"DSLType"),
{
ProductCode: ProductCode,
Description: Description,
KPICode: If(KPICode = Blank(), Blank(), KPICode),
DSLType: If(DSLType = Blank(), Blank(), DSLType)
}
),
JSONFormat.IndentFour
));