Apex(Salesforce)从响应中读取json并将其存储在字符串变量中

问题描述 投票:0回答:2

我正在尝试打一个API端点,当我打电话时该端点响应如下所示response.getBody()

{ “ oktaToken”:“ eyJraWQiOiIyNlN1NHFMNnVVZTVJX2M5X2Z3WmZvX09ON0dNUHRtQzlEeHFsTGplLS00IiwiYWxnIjoiUlMyNTYifQ.eyJ2ZXIULOJEsImpIlIm0aSI6I9”}

现在我想将此令牌的值存储到字符串变量中。

response.getbody()已经是一个字符串,但是我希望该值存储在String变量中。我不想在字符串(response.getbody())中进行任何操作,例如拆分和子字符串。

是否有使用json解析的东西,以便我可以通过传递键('oktaToken')来获取变量中的token值?

salesforce apex apex-code salesforce-lightning aura-framework
2个回答
0
投票

[JSON.parse(string)将使用输入字符串创建一个对象,然后可以使用点符号对其属性进行访问。

因此,在您的情况下,您可以执行以下操作:

var responseBody = JSON.parse(response.getBody());
var oktaToken = responseBody.oktaToken;

0
投票
String jsonStr = '{ "oktaToken":"eyJraWQiOiIyNlN1NHFMNnVVZTVJX2M5X2Z3WmZvX09ON0dNUHRtQzlEeHFsTGplLS00IiwiYWxnIjoiUlMyNTYifQ.eyJ2ZXIiOjEsImp0aSI6IkFULlVINmdIOF9BcWJ" }';
Map<String, String> m = (Map<String, String>) JSON.deserialize(jsonStr, Map<String, String>.class);
String oktaToken = m.get('oktaToken');
System.debug(oktaToken);

这是您要寻找的吗?

© www.soinside.com 2019 - 2024. All rights reserved.