public DMNContext populateContextWith(Map<String, Object> json) {
        for (Entry<String, Object> kv : json.entrySet()) {
            InputDataNode idn = model.getInputByName(kv.getKey());
            if (idn != null) {
                processInputDataNode(kv, idn);
            } else {
                DecisionNode dn = model.getDecisionByName(kv.getKey());
                if (dn != null) {
                    processDecisionNode(kv, dn);
                } else {
                    LOG.debug("The key {} was not a InputData nor a Decision to override, setting it as-is.", kv.getKey());
                    context.set(kv.getKey(), kv.getValue());
                }
            }
        }
        return context;
    }
@Test
    void floatFromREST() throws Exception {
        final DMNRuntime runtime = createRuntime("numberRESTinLIST.dmn", this.getClass());
        final DMNModel dmnModel = runtime.getModel("https://kiegroup.org/dmn/_91CAD4BC-859F-465A-9294-300EABF4EC8A", "numberRESTinLIST");
        Assertions.assertThat(dmnModel).isNotNull();
        Assertions.assertThat(dmnModel.hasErrors()).describedAs(DMNRuntimeUtil.formatMessages(dmnModel.getMessages())).isFalse();

        DMNContext context = runtime.newContext();
        final String JSON = "{ \"a number\": 3.0 }";
        new DynamicDMNContextBuilder(context, dmnModel).populateContextWith(readJSON(JSON));
        
        final DMNResult dmnResult = runtime.evaluateAll(dmnModel, context);
        LOG.debug("{}", dmnResult);
        Assertions.assertThat(dmnResult.hasErrors()).describedAs(DMNRuntimeUtil.formatMessages(dmnResult.getMessages())).isFalse();
        Assertions.assertThat(dmnResult.getDecisionResultByName("Decision-1").getResult()).isEqualTo("OK");
    }