在JsnoToApex类中,我尝试从https://openweathermap.org/current获取JSON文件。当我尝试解析JSON.CreateParses时,出现以下错误:从System.JSONParser到JsonParser的非法分配
我尝试制作显示伦敦天气的API。
具有共享类JsonToApex的public {
@future(callout=true)
public static void parseJSONResponse() {
String resp;
Http httpProtocol = new Http();
// Create HTTP request to send.
HttpRequest request = new HttpRequest();
// Set the endpoint URL.
String endpoint = 'https://samples.openweathermap.org/data/2.5/weather?q=London,uk&appid=b6907d289e10d714a6e88b30761fae22';
request.setEndPoint(endpoint);
// Set the HTTP verb to GET.
request.setMethod('GET');
// Send the HTTP request and get the response.
// The response is in JSON format.
HttpResponse response = httpProtocol.send(request);
resp = response.getBody();
JSONParser parser = JSON.createParser(resp);
JsonMapper response = (JsonMapper) System.JSON.deserialize(res.getBody(), JsonMapper.class);
}
}
我希望获取Json文件,并在将来使用https://json2apex.herokuapp.com/
对其进行映射答案 0 :(得分:0)
问题出在第一个JSONParser中。我必须添加System.JSONParser才能使其正常工作。
System.JSONParser parser = JSON.createParser(resp);
答案 1 :(得分:0)
您可能有两种方法:
JSON2Apex aClass = (JSON2Apex) System.JSON.deserialize(resp, JSON2Apex.class);
其中JSON2Apex
是映射Apex类。
JSON.deserializeUntyped(String jsonString)
将JSON反序列化为Apex类中的任何Object
,例如:Map<String, Object> objMap = (Map<String, Object>) JSON.deserializeUntyped(resp);