我正在尝试打一个API端点,当我打电话时该端点响应如下所示response.getBody()
{ “ oktaToken”:“ eyJraWQiOiIyNlN1NHFMNnVVZTVJX2M5X2Z3WmZvX09ON0dNUHRtQzlEeHFsTGplLS00IiwiYWxnIjoiUlMyNTYifQ.eyJ2ZXIULOJEsImpIlIm0aSI6I9”}
现在我想将此令牌的值存储到字符串变量中。
response.getbody()已经是一个字符串,但是我希望该值存储在String变量中。我不想在字符串(response.getbody())中进行任何操作,例如拆分和子字符串。
是否有使用json解析的东西,以便我可以通过传递键('oktaToken')来获取变量中的token值?
[JSON.parse(string)将使用输入字符串创建一个对象,然后可以使用点符号对其属性进行访问。
因此,在您的情况下,您可以执行以下操作:
var responseBody = JSON.parse(response.getBody());
var oktaToken = responseBody.oktaToken;
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);
这是您要寻找的吗?