PowerApps中AzureMap的ShapeGeoJSONObjects输入报错求助
解决PowerApp中Azure Maps ShapeGeoJSONObjects的输入报错问题
问题定位
PowerApps公式栏对JSON字符串的格式要求严格,你遇到的Literal text expected报错,核心原因是直接输入的JSON未按PowerApps语法规则处理——换行和未转义的双引号会触发语法校验失败,而非JSON本身结构不合法。
解决方案
方案1:转义双引号并压缩为单行
将JSON压缩成单行,同时把每个双引号"替换为""(PowerApps中字符串内的双引号需双写转义),直接赋值给ShapeGeoJSONObjects:
"{ ""type"": ""FeatureCollection"", ""features"": [ { ""type"": ""Feature"", ""properties"": {}, ""geometry"": { ""coordinates"": [ [19.788919073542417,51.28900932857681], [10.528659987309936,51.401502233484564], [10.60617848378385,51.180376270347864], [9.840399490293748,51.051050541744104], [9.808220194372495,51.30107933916048] ], ""type"": ""LineString"" } } ] }"
方案2:用ParseJSON函数解析
如果需要保留JSON可读性,先将转义后的JSON存入变量,再解析后传入:
- 在屏幕
OnVisible事件中设置全局变量:Set(varGeoJSON, "{ ""type"": ""FeatureCollection"", ""features"": [ { ""type"": ""Feature"", ""properties"": {}, ""geometry"": { ""coordinates"": [ [19.788919073542417,51.28900932857681], [10.528659987309936,51.401502233484564], [10.60617848378385,51.180376270347864], [9.840399490293748,51.051050541744104], [9.808220194372495,51.30107933916048] ], ""type"": ""LineString"" } } ] }") - 在Azure Maps控件的
ShapeGeoJSONObjects属性中输入:ParseJSON(varGeoJSON)
方案3:数据源引用注意事项
如果引用表格中的JSON字段,需满足:
- 字段数据类型为文本
- 字段内JSON格式完全合法(无多余逗号、缺失引号)
- 引用时使用
ParseJSON(YourTable.JSONColumn)而非直接绑定
验证步骤
- 在公式栏单独测试
ParseJSON(转义后的JSON字符串),确认返回有效JSON对象 - 将验证通过的对象赋值给ShapeGeoJSONObjects,检查地图是否正常加载图形
内容的提问来源于stack exchange,提问作者Christoph Wutzkowsky
相关产品推荐
相关产品推荐

