从 System.JSONParser 到 JsonParser的非法赋值



在JsnoToApex类中,我尝试从 https://openweathermap.org/current 获取JSON文件。当我尝试解析 JSON 时。CreateParses 我收到以下错误:从 System.JSONParser 到 JsonParser 的非法赋值

我尝试制作显示伦敦天气的API。

public with shared class JsonToApex {

@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/映射它

问题出在第一个 JSONParser。我不得不添加System.JSONParser才能使其工作。

System.JSONParser parser = JSON.createParser(resp);

您可能有两种方法:

  1. 如果您已经将 JSON 映射到 Apex 类,则可以使用
JSON2Apex aClass = (JSON2Apex) System.JSON.deserialize(resp, JSON2Apex.class);

其中JSON2Apex是映射 Apex 类。

  1. 使用该JSON.deserializeUntyped(String jsonString)将 JSON 反序列化为 Apex 类中的任何Object,例如:
Map<String, Object> objMap = (Map<String, Object>) JSON.deserializeUntyped(resp);

相关内容

  • 没有找到相关文章

最新更新