當前位置: 首頁>>代碼示例>>Java>>正文


Java JsonQuery類代碼示例

本文整理匯總了Java中net.thisptr.jackson.jq.JsonQuery的典型用法代碼示例。如果您正苦於以下問題:Java JsonQuery類的具體用法?Java JsonQuery怎麽用?Java JsonQuery使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


JsonQuery類屬於net.thisptr.jackson.jq包,在下文中一共展示了JsonQuery類的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: initialize

import net.thisptr.jackson.jq.JsonQuery; //導入依賴的package包/類
private StructObjectInspector initialize(final ObjectInspector jsonArg, final ObjectInspector jqArg, final List<ObjectInspector> nameAndTypeArgs) throws UDFArgumentException {
	this.in = Arguments.asString(jsonArg, "JSON");

	try {
		this.jq = JsonQuery.compile(Arguments.asConstantNonNullString(jqArg, "JQ"));
	} catch (final JsonQueryException e) {
		throw new UDFArgumentException("JQ is invalid: " + e.getMessage());
	}

	this.marshaller = ResultObjectMarshallers.create(Arguments.asConstantNonNullStrings(nameAndTypeArgs, "TYPE or NAME:TYPE"));

	this.scope = new Scope();
	this.mapper = new ObjectMapper(new JsonFactory().enable(Feature.ALLOW_UNQUOTED_CONTROL_CHARS));

	return marshaller.objectInspector();
}
 
開發者ID:CyberAgent,項目名稱:hive-jq-udtf,代碼行數:17,代碼來源:JsonQueryUDTF.java

示例2: start

import net.thisptr.jackson.jq.JsonQuery; //導入依賴的package包/類
@Override
public void start(Workflow workflow, Task task, WorkflowExecutor executor) throws Exception {
	Map<String, Object> taskInput = task.getInputData();
	Map<String, Object> taskOutput = task.getOutputData();

	String queryExpression = (String) taskInput.get(QUERY_EXPRESSION_PARAMETER);
	
	if(queryExpression == null) {
		task.setReasonForIncompletion("Missing '" + QUERY_EXPRESSION_PARAMETER + "' in input parameters");
		task.setStatus(Task.Status.FAILED);
		return;
	}
	
	try {
		JsonNode input = om.valueToTree(taskInput);
		JsonQuery query = queryCache.get(queryExpression);
		List<JsonNode> result = query.apply(input);
		
		task.setStatus(Task.Status.COMPLETED);
		if (result == null) {
			taskOutput.put("result", null);
			taskOutput.put("resultList", null);
		} else if (result.isEmpty()) {
			taskOutput.put("result", null);
			taskOutput.put("resultList", result);
		} else {
			taskOutput.put("result", result.get(0));
			taskOutput.put("resultList", result);
		}
	} catch(Exception e) {
		logger.error(e.getMessage(), e);
		task.setStatus(Task.Status.FAILED);
		task.setReasonForIncompletion(e.getMessage());
		taskOutput.put("error", e.getCause() != null ? e.getCause().getMessage() : e.getMessage());
	}
}
 
開發者ID:Netflix,項目名稱:conductor,代碼行數:37,代碼來源:JsonJqTransform.java

示例3: createQueryCache

import net.thisptr.jackson.jq.JsonQuery; //導入依賴的package包/類
private LoadingCache<String, JsonQuery> createQueryCache() {
	CacheLoader<String, JsonQuery> loader = new CacheLoader<String, JsonQuery>() {
		@Override
		public JsonQuery load(@Nonnull String query) throws JsonQueryException {
			return JsonQuery.compile(query);
		}
	};
	return CacheBuilder.newBuilder().expireAfterWrite(1, TimeUnit.HOURS).maximumSize(1000).build(loader);
}
 
開發者ID:Netflix,項目名稱:conductor,代碼行數:10,代碼來源:JsonJqTransform.java


注:本文中的net.thisptr.jackson.jq.JsonQuery類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。