求助:基于金融API开发应用,PowerApps无法解析JSON响应
解决PowerApps提取复杂金融API JSON数据的方案
一、先在Power Automate端简化输出结构
- 在解析JSON的步骤之后,新增一个Compose动作,手动筛选出PowerApps需要的核心字段,重构为扁平化的JSON结构。比如原JSON嵌套多层,就只保留必要层级:
{ "股票代码": "@{body('Parse_JSON')?['response']?['symbol']}", "最新价格": "@{body('Parse_JSON')?['response']?['price']?['latest']}", "历史行情": "@{body('Parse_JSON')?['response']?['history']}" } - 将Compose的输出设置为Power Automate的最终响应内容,这样PowerApps获取到的就是结构简单的JSON,大幅降低提取难度。
二、PowerApps端的精准提取方法
- 如果必须直接处理复杂JSON,用
ForAll配合嵌套字段遍历数组,比如提取历史行情中的日期和价格:ForAll( 你的流名称.Run().response.history, { 日期: ThisRecord.date, 价格: ThisRecord.closePrice } ) - 用
Set函数先存储完整响应,再逐层定位字段,避免重复调用流:Set( varApiData, 你的流名称.Run() ); Set( varLatestPrice, varApiData.response.price.latest )
三、排查关键问题点
- 确认Power Automate的响应类型是JSON,而非纯文本,否则PowerApps无法识别为结构化数据。
- 检查当前API的JSON是否存在动态字段名(比如用日期作为键),这种情况要在Power Automate里用Select动作把动态键值对转为标准数组,格式如
{日期: "", 价格: ""}。 - 对比Alpha Vantage的JSON结构,找出当前API的差异:是否多了嵌套层级、是否混用数组与对象,针对性调整解析逻辑。
内容的提问来源于stack exchange,提问作者cleven
相关产品推荐
相关产品推荐

