Java 8 使用Java8流API解析JSONNode

Java 8 使用Java8流API解析JSONNode,java-8,jsonnode,Java 8,Jsonnode,我正在使用Java读取Salesforce环境中的所有对象,它工作正常,但下面的代码需要10分钟才能将JSON转换为Java ArrayList。我在考虑是否可以使用Java-8流API来并行解析逻辑。以下是我的工作代码,任何建议,谢谢 /** * @Desc : Get All available objects(tables) from salesforce * @return : List<SalesforceObject> * */ public List<Sal

我正在使用Java读取Salesforce环境中的所有对象,它工作正常,但下面的代码需要10分钟才能将JSON转换为Java ArrayList。我在考虑是否可以使用Java-8流API来并行解析逻辑。以下是我的工作代码,任何建议,谢谢

/**
 * @Desc : Get All available objects(tables) from salesforce
 * @return : List<SalesforceObject>
 * */
public List<SalesforceObject> getAllsObjects() {

    List<SalesforceObject> listsObject = new ArrayList<SalesforceObject>();

    try {

        // query Salesforce
        final URIBuilder builder = new URIBuilder(this.sfAccess.instanceURL);
        builder.setPath(appProp.salesforceObjectPath);

        final HttpGet get = new HttpGet(builder.build());
        get.setHeader("Authorization", "Bearer " + this.sfAccess.token);

        final CloseableHttpClient httpclient = HttpClients.createDefault();
        final HttpResponse queryResponse = httpclient.execute(get);

        // parse
        final ObjectMapper mapper = new ObjectMapper().enable(SerializationFeature.INDENT_OUTPUT);
        final JsonNode queryResults = mapper.readValue(queryResponse.getEntity().getContent(), JsonNode.class);
        System.out.println(queryResults);

        // This line takes - 10 mins
        listsObject.addAll(mapper.convertValue(queryResults.get("sobjects"), new TypeReference<List<SalesforceObject>>(){}));

        return listsObject;
    } catch(IOException e) {
        e.printStackTrace();
    } catch (URISyntaxException e) {
        e.printStackTrace();
    }

    return null;
}
/**
*@Desc:从salesforce获取所有可用对象(表)
*@return:List
* */
公共列表getAllsObjects(){
List listsObject=new ArrayList();
试一试{
//查询销售人员
最终URIBuilder=新的URIBuilder(this.sfAccess.instanceURL);
setPath(appProp.salesforceObjectPath);
final-HttpGet=new-HttpGet(builder.build());
get.setHeader(“授权”、“承载者”+此.sfAccess.token);
final CloseableHttpClient httpclient=HttpClients.createDefault();
最终HttpResponse queryResponse=httpclient.execute(get);
//解析
final ObjectMapper mapper=new ObjectMapper().enable(SerializationFeature.INDENT_输出);
final JsonNode queryResults=mapper.readValue(queryResponse.getEntity().getContent(),JsonNode.class);
System.out.println(查询结果);
//这条线需要-10分钟
addAll(mapper.convertValue(queryResults.get(“sobjects”),newtypereference(){});
返回列表对象;
}捕获(IOE异常){
e、 printStackTrace();
}捕获(URISyntaxException e){
e、 printStackTrace();
}
返回null;
}
您正在查看的

return StreamSupport.stream(queryResults.get("sobjects").spliterator(), true)
            .map(sObj -> mapper.convertValue(sObj, SalesforceObject.class))
            .collect(Collectors.toList());

请注意,您的并发性仍将受到服务器CPU核心数量的限制。

这是哪个库?
JsonNode
来自?com.fasterxml.jackson.databind.JsonNode;queryResults.get(“sobjects”)这行似乎花费了更多的时间。。数据大小约为300KB。这需要更多的时间,因为我正在控制台中打印结果,大小为4MB。。谢谢你的帮助!