0

在 JsnoToApex 类中,我尝试从https://openweathermap.org/current获取 JSON 文件。当我尝试解析 JSON.CreateParses 时出现以下错误: Illegal assignment from System.JSONParser to JsonParser

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

公共共享类 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/映射它

4

2 回答 2

0

您可能有两种方法:

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

JSON2Apex映射 Apex 类在哪里。

  1. 使用 将JSON.deserializeUntyped(String jsonString)JSON 反序列化为ObjectApex 类中的任何内容,例如:
Map<String, Object> objMap = (Map<String, Object>) JSON.deserializeUntyped(resp);
于 2019-04-16T03:36:39.733 回答
0

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

System.JSONParser parser = JSON.createParser(resp);
于 2019-04-15T21:08:34.047 回答